【发布时间】:2013-12-02 07:33:42
【问题描述】:
我尝试在 Array 原型中添加一些我经常使用的新功能。我的问题是,当我向对象的原型添加一些东西,并在我创建的任何新数组(对象)的 for-in 循环中跟踪属性时,那些仅添加到原型中的新函数也会被列出?他们不应该只是在 proto 中吗?
举例: 所以我在原型中添加了一个“first”的功能。
Array.prototype.first = function() { return this[0]; }
所以当我现在使用 for-in 循环遍历数组时,我得到了命名函数,以及数组中的任何其他项。
var array = [1,2,3];
//traces out: 1,3,4,first
for(var i in array) {
console.log(i);
}
这仅仅是由于跟踪和/或使用 for-in 迭代对象而产生的吗?
【问题讨论】:
标签: javascript object for-in-loop prototype-oriented