Можно ли подключить обратный вызов к встроенной функции JS. Например, когда вызывается Array.prototype.push('d')
, я хочу запустить другую функцию. Является ли это возможным?Обратный вызов для встроенной функции JavaScript
UPDATE:
function Dummy() {};
Dummy.prototype = Array.prototype;
var arrObj = new Dummy();
var domElement = 'itemsList';
arrObj = ['werew', 'werewr', '234324'];
(function(native) {
arrObj.push = function() {
native.apply(this, arguments);
arrObj.render(domElement);
};
})(arrObj.push);
arrObj.addItem = function(item) {
this.push(item); //Uncaught TypeError: this.push is not a function
this.render(domElement);
return this;
}
Обычно вы не должны модифицировать собственные функции, если у вас есть действительно веские причины для этого. –
Кажется, у вас есть некоторые недоумения. Сначала вы объявляете 'arrObj' как объект без массива, который наследуется от' Array.prototype', а затем вы перезаписываете его с помощью реального массива. Таким образом, первое бесполезно. – Oriol
Я назначаю его прототипом Array, чтобы я мог перезаписать методы массива с эффектом Array. –