我认识你should avoid it ,因此尽管很烦人,但我总是保护自己免受它的侵害。
但是究竟是什么导致原型(prototype)的扩展在使用“for in”时出现?有时(或看起来)使用“for in”是安全的,而其他时候则不是。
即:
我说的例子:
Array.prototype.last = function(){ return this[this.length-1]; }
显示为:
for(var k in someArray){
console.log("%o %o", k, someArray[k]); // eventually outputs "last 'function(){ return this[this.length-1]; }'
}
最佳答案
此行为是设计使然。
for in
遍历所有可枚举属性,包括从原型(prototype)继承的属性。
关于javascript - 使用 "for in"时,是什么导致原型(prototype)变量出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14481737/