gpt4 book ai didi

javascript - for (key in array) 在数组原型(prototype)上循环

转载 作者:行者123 更新时间:2023-11-28 20:15:49 26 4
gpt4 key购买 nike

我不知道如何准确地表达这个问题,但我发现这个问题非常复杂。

基本上我是在 Chrome 的开发者工具控制台中进行此测试的。

for (var request in [0,1,2]) { console.log(request);}

0
1
2
compare

最后四行都是for循环的输出。在for循环中,请求得到了值compare。

我想知道这是否是 Chrome 中的一个错误。

最佳答案

for ... in ... 迭代对象的可枚举属性,不适用于数组索引。数组索引也是可枚举属性,但正如您发现的那样,任何不安全添加到 Array.prototype 的内容也会被返回。

要在 ES5 浏览器中安全地将(不可枚举)方法添加到 Array.prototype,您可以使用 Object.defineProperty,例如:

Object.defineProperty(Array.prototype, 'compare', {
value: function() {
...
}
});

这将阻止 for ... in 中断,但当感兴趣的变量是数组时,它仍然是错误的工具。

关于javascript - for (key in array) 在数组原型(prototype)上循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19203656/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com