【发布时间】:2015-11-10 03:21:21
【问题描述】:
我最近偶然发现了在 JavaScript 中对数组使用 for..in 循环的问题。
根据this 问题中的答案,for..in 旨在枚举对象的属性,包括继承的属性。
如果是这样,为什么我们能够使用 Object.defineProperty 将属性定义为不可枚举?这不违背 for..in 的全部意图吗?还是被认为是不好的做法,应该避免?
另外,为什么我们首先要以这种方式迭代所有属性(即使用 for..in 循环)?这什么时候能派上用场?
为什么不将所有 (Array) 原型扩展定义为不可枚举并继续使用 for..in 和数组呢?
【问题讨论】:
标签: javascript arrays enumerable for-in-loop