Пытаюсь расширить класс Array при помощи prototype, добавив в него свой метод, но при обходе массива циклом созданный метод видится элементом массива:
Array.prototype.fun = (function() {
})();
var arr = [1, 2];
for (var i in arr) {
alert(i);
}
https://jsfiddle.net/phojh6qk/
Я что-то делаю неправильно?
Метод defineProperty позволяет задать такие параметры, в том числе, и enumerable - чтобы созданное свойство не было видно при обходе массива циклом:
Object.defineProperty(Array.prototype, 'fun', {
value: function() {
}
});
По умолчанию, значение enumerable установлено в false.
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости