修改数组原型会导致foreach表现不同

时间:2014-07-12 14:48:54

标签: javascript arrays prototype

我注意到每当我修改数组原型时,它都会改变foreach的行为。我创建了以下示例,向您展示我正在做什么:

Array.prototype.x = 10;
for(var i in [1,2,3]){
    alert(i);
}

此示例显示四个警报:“1”,“2”,“3”和“x”;

为什么这段代码会给我4个警报?

如何在不干扰foreach的情况下修改数组原型?

1 个答案:

答案 0 :(得分:2)

您需要将您的媒体资源定义为“不可枚举”:

Object.defineProperty(Array.prototype, 'x', {
    enumerable: false,
    value: 10
});

以下是JSFiddle,其中显示了正在运行的代码。

相关问题