我注意到每当我修改数组原型时,它都会改变foreach的行为。我创建了以下示例,向您展示我正在做什么:
Array.prototype.x = 10;
for(var i in [1,2,3]){
alert(i);
}
此示例显示四个警报:“1”,“2”,“3”和“x”;
为什么这段代码会给我4个警报?
如何在不干扰foreach的情况下修改数组原型?
答案 0 :(得分:2)
您需要将您的媒体资源定义为“不可枚举”:
Object.defineProperty(Array.prototype, 'x', {
enumerable: false,
value: 10
});
以下是JSFiddle,其中显示了正在运行的代码。