У вас почти было это, вам нужно установить ссылку this
внутри старой функции size
на ссылку this
в функции переопределения, например:
var oSize = jQuery.fn.size;
jQuery.fn.size = function() {
alert(this.length);
// Now go back to jQuery's original size()
return oSize.apply(this, arguments);
};
То, как это работает, Function
экземпляры имеют метод с именем apply
, целью которого является произвольное переопределение внутренней ссылки this
внутри тела функции.
Итак, в качестве примера:
var f = function() { console.log(this); }
f.apply("Hello World", null); //prints "Hello World" to the console