Dim*_*ims 1 javascript jquery overriding overloading
我想hide()
在我的对象上覆盖jQuery的函数.我想让它调用我的onHide()
函数然后调用原始函数hide()
.
怎么做到这一点?
最简单的代码不会传递参数我猜:
myobject.oldhide = myobject.hide;
myobject.onHide = function() {
// something
};
myobject.hide = function() {
this.onHide();
this.oldhide();
}
Run Code Online (Sandbox Code Playgroud)
jQuery hide()
最多接受3个参数.我可以定义其中的3个吗?
myobject.oldhide = myobject.hide;
myobject.onHide = function() {
// something
};
myobject.hide = function(a,b,c) {
this.onHide();
this.oldhide(a,b,c);
}
Run Code Online (Sandbox Code Playgroud)
你可以.apply()
用来打电话给原件:
this.oldhide.apply(this, arguments);
Run Code Online (Sandbox Code Playgroud)
将调用oldhide
任何参数列表传递给您自己的函数,它不需要任何声明的参数:
myobject.oldhide = myobject.hide;
myobject.onHide = function() {
// something
};
myobject.hide = function() {
this.onHide();
this.oldhide.apply(this, arguments);
}
Run Code Online (Sandbox Code Playgroud)