1

在我正在处理的一些代码中,我创建了一个仅应用于数组的 JavaScript 函数,我想我会尝试将它添加为成员函数。

我像这样添加它:

Array.prototype.myfunc = function(a){
    ...
}

在大多数情况下效果很好。我遇到的问题是for-in循环。它在循环中包含该函数。如果我然后输入这个片段:

var bar, foo = ['alpha', 'bravo', 'charlie'];
for(bar in foo) console.log(foo[bar]);

然后输出如下:

alpha
bravo
charlie
function myFunc(a){
    ...
}

那么有没有办法做到这一点,但避免它显示在 for-in 循环中?

4

1 回答 1

0

您可以使用Object.defineProperty创建任何对象的不可枚举属性,包括数组。请记住,在 JavaScript 中,数组只是带有数字作为键的对象,这就是为什么添加到它们的属性会出现在 forEach 中的原因。

于 2020-03-04T14:19:31.020 回答