В каком-то коде, над которым я работаю, я создал функцию 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?
Object.defineProperty
, но, как всегда, изменение прототипа глобальных объектов крайне не рекомендуется. - person VLAZ   schedule 04.03.2020for..in
для получения содержимого массива также не рекомендуется. Вместо этого используйтеfor..of
. См. Почему использование for…in с итерацией массива — плохая идея? - person Heretic Monkey   schedule 04.03.2020