gpt4 book ai didi

John Resig 的 Javascript Array.remove() - 为什么它在 for-in 语句中枚举?

转载 作者:行者123 更新时间:2023-11-30 15:43:49 25 4
gpt4 key购买 nike

我刚找到 John Resig's Array.remove()功能。 [看起来他的网站没有正确解析 bb 代码,所以很难阅读!]

虽然它很漂亮,但问题是“remove()”方法在加载他的代码后在每个数组的 for-in 语句中枚举。

例如,在添加他的代码之前,执行以下操作:

var a = ["a", "b", "c"];
for (i in a)
{
console.log(i);
}

你得到:

0
1
2
remove

为什么Array对象的其他所有内置属性和方法都不枚举,remove()方法有什么办法可以防止这种情况发生吗?

Here's a jsfiddle...

最佳答案

您可以使用 Object.defineProperty() 添加方法:

Object.defineProperty(Array.prototype, "remove", {
value: function() { ... }
});

默认情况下,属性的“可枚举”标志将关闭,这意味着它不会出现在for ... in 循环中。

关于John Resig 的 Javascript Array.remove() - 为什么它在 for-in 语句中枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40412976/

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