【发布时间】:2011-02-02 07:05:47
【问题描述】:
在 yuiblog 上的 article 中,Douglas Crockford 说 for in 语句将遍历对象的方法。为什么下面的代码不产生 ["a", "b", "c", "d", "toString"]? .toString() 和其他方法不是 my_obj 的成员吗?
Object.prototype.toString = function(){return 'abc'}
Object.prototype.d = 4;
my_obj = {
'a':1,
'b':2,
'c':3
}
a = []
for (var key in my_obj) {
a.push(key)
}
console.log(a) // prints ["a", "b", "c", "d"]
【问题讨论】: