我有以下内容:
var firstFunc = function (settings){
alert('sup');
};
var secondFunc = function (settings){
alert('dude');
};
$.extend(firstFunc, secondFunc);
firstFunc();
我正试图让最后一个FirstFunc()返回sup,然后是dude。
上下文
原因是我实现了一个继承模式,如果由派生对象定义,基础对象会覆盖一些功能:
if (child.close){
base.close = child.close;
}
base.close = function() {
// do stuff
}
问题是,我总是需要基础对象来“做东西”,我想将child.close的功能附加到base.close。我怎样才能做到这一点?
答案 0 :(得分:0)
$.extend
用于对象,而不是函数。为什么不做一个调用前两个函数的第三个函数?
function bothFuncs(){
firstFunc();
secondFunc();
}
答案 1 :(得分:0)
如果不知道确切的继承实现,很难回答,但这样的事情可能会对你有所帮助:
// reference to child instance
var self = this;
// overwrite close method
this.close = (function() {
var baseClose = self.close;
return function() {
baseClose.call(self);
alert('child close');
};
})();
后来:
base.close(); // alert('base close');
child.close(); // alert('base close'); -> alert('child close');
创建包装器方法的想法。