假设我正在使用一个库,其代码如下所示:
(function($)
{
function Library(el, options)
{
return new Library.prototype.init(el, options);
}
Library.fn = $.Library.prototype = {
init: function(el, options) {
this.$elm.on('keydown.library', $.proxy(this.keydown.init, this));
}
keydown: function() {
return {
init: function(e) {
... somecode
},
checkStuff: function(arg1, arg2) {
...someCode
}
}
};
}
})(jQuery);
它有一个插件系统,可提供对此的访问,其中这是一个Object {init: function, keydown: function...}
. 我想覆盖 keydown.init 函数。通常我可以看到使用 _.wrap 之类的东西来做到这一点:
somefunc = _.wrap(somefuc, function(oldfunc, args) {
donewstuff();
oldfunc.call(this.args);
});
但这似乎不适用于返回的嵌套方法,例如:
this.keydown.init = _.wrap(this.keydown.init, function(oldfunc, args) {
donewstuff();
oldfunc.call(this.args);
});
这个问题可能会在这里得到回答,但我真的不知道用来描述这种编码风格的正确词,所以很难搜索。如果您让我知道将其称为嵌套返回方法是否正确,则可以加分?