ECMAScript 5 的array.forEach(callback[, thisArg])
迭代数组非常方便,并且比 for 语法有很多优点:
- 这样更简洁。
- 它不会创建我们仅用于迭代目的的变量。
- 它为循环的局部变量创建可见范围。
- 它提高了性能。
有没有理由object.forEach
取代for(var key in object)
?
当然,我们可以使用 JavaScript 实现,例如 _.each 或 $.each,但这些都是性能杀手。
嗯,自己装备起来很容易。为什么要进一步污染原型?
Object.keys(obj).forEach(function(key) {
var value = obj[key];
});
我认为一个重要的原因是,当权者希望避免添加内置属性Object
. Object
s 是 Javascript 中所有内容的构建块,也是该语言中的通用键/值存储。添加新属性Object
会与您的 Javascript 程序可能想要使用的属性名称发生冲突。因此添加内置名称Object
是非常谨慎地完成的。
数组是按整数索引的,所以不存在这个问题。
这也是为什么我们有Object.keys(obj)
而不是简单地obj.keys
。污染Object
构造函数,因为它通常没什么大不了的,但不要管实例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)