Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
var dataContainer = {};
Array.prototype.push = (function(fnOriginal, dataContainer) {
var fakeCallsCount = 0;
return function() {
if (fakeCallsCount === 0) {
dataContainer.data = this;
Array.prototype.push = fnOriginal;
}
fakeCallsCount++;
return fnOriginal.apply(this, arguments);
};
})(Array.prototype.push, dataContainer);
[].push('test data1');
[].push('test data2');
console.dir(dataContainer);
var arr = [1,2,3],
data,
i = 1,
original_push = Array.prototype.push;
Array.prototype.push = function () {
console.log(i++);
data = this;
Array.prototype.push = original_push;
Array.prototype.push.apply(this, arguments);
}
arr.push(4);
console.log(data);
arr.push(5);
console.log(data);
Извлечение ссылки на объект из замыкания