arr push



Автор Da Net задал вопрос в разделе JavaScript

Как создать метод для любого массива, который вызывался как, например, push? То есть так: arr.push(). и получил лучший ответ

Ответ от Андрей[гуру]
Метод, существующий в любом дочернем объекте, в JavaScript делается через прототипы. Любой массив - это наследник объекта Array. Так что метод с названием new_method для всех массивов создаётся так:
Array.prototype.new_method = function() { твой_код };

Ответ от Павел Корнилов[гуру]
Целиком согласен с Андреем из 1 поста, но хочу добавить, что при расширении базовых прототипов нужно делать проверку на наличие нативного метода, либо метода, добавленного другим скриптом.
Array.prototype.new_method = Array.prototype.new_method || function() { твой_код };

Ответ от Николай Веселуха[гуру]
Может имеет смысл не расширять встроенный объект, а написать свой похожий? В который можно добавить только нужные методы, какие-то переопределить по своему усмотрению, добавить свои собственные. Например, вот так...
let o = {}
o.a = [];
o.toString = function (delim = ",") {
let res = "";
for (let item of this.a) {
if (res.length > 0) res += delim;
res += item;
}
return res;
};
o.push = function (...args) {
for (let item of args) this.a.push(item);
};
o.func = function (x) {
for (let i = 0; i < this.a.length; i += 1) this.a[i] *= x;
};
o.reverse = function () {
this.a.reverse();
};
o.valueOf = function () {
return this.a.valueOf();
};
o.push(2, 3);
o.push(5, 6);
o.push(8);
console.log(o.valueOf());
let x = 3;
o.func(x);
console.log(o.valueOf());
o.reverse();
console.log(o.valueOf());

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Как создать метод для любого массива, который вызывался как, например, push? То есть так: arr.push().
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*