以下のようなコードでライブラリを使用しているとします。
(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);
});
質問はここで答えられるかもしれませんが、このスタイルのコーディングを説明するために使用する正しい言葉を本当に知らないので、検索するのは難しいです. ネストされた戻りメソッドと呼ぶのが正しいかどうかを教えていただければ、ボーナスポイントはありますか?