gpt4 book ai didi

javascript - 阻止 javascript 原型(prototype)设计杀死 for 循环

转载 作者:行者123 更新时间:2023-11-28 16:30:57 24 4
gpt4 key购买 nike

与我一起工作的一些人在他们的网站上包含了我编写和托管的一些 javascript。但其中一些网站使用prototype.js或其他一些框架,这导致了一些大问题。

例如:

var test = {"one":[{"a":"b"}]};
for (var i in test.one) { console.log(i); }

控制台中的预期结果将是“0”(i 是该数组的键)

但是如果我访问像prototypejs.org这样的网站并在firebug的控制台中运行相同的代码,我会得到所有原型(prototype)垃圾的列表(每个,每个Slice等..)

尝试在 stackoverflow 上的控制台中运行它,它按预期返回“0”。

如何防止这种情况发生?有什么好的解决办法吗?

最佳答案

要么测试您枚举的每个属性不在原型(prototype)中

for (var i in test.one) { 
if (test.one.hasOwnProperty(i)) {
console.log(i);
}
}

或者不枚举数组。

for (var i = 0, ii = test.one.length; i < ii; i++) {
console.log(i);
}

任何扩展Object.prototype的代码都不是你的问题。您不必对此有所警惕。

关于javascript - 阻止 javascript 原型(prototype)设计杀死 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5998981/

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