Пытаюсь расширить класс 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
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Использую input и кнопку для получения данных из оногоJs имею такой вот код: