ここでそれをテストしてみました。また、あなたの例であなたがやっていることは正しいことではないことに注意してください。このことを考えてみましょう:あなたはこれを実行すると
var ReportManager {
...
replace: function(report) {
var preLoad = this.opts.hooks.preLoad.pop();
//stuff happens
//now I want to add the preLoad hook back
this.opts.hooks.preLoad.push(function(report) { preLoad(report); });
}
}
:
は
replace(null);
replace({foo:'bar'});
replace(null);
あなたthis.opts.hooks.preLoad
配列は次のようになります。
Array(
0: function(report) { return function(report) { return function(report) { ... } } }
)
をあなたはすべての時間を実行しますが、自分自身の中に包まれた機能を推進しているのであなたのコード。私はなぜあなたがpop
とpush
に戻る必要があるのか分からないが、これは奇妙に見える。
また、JavaScriptは非常にです。
"hello".concat(" world"); // -> 'hello world'
0.toString(); // -> '0'
(function(a) { return a; })("foo"); // -> 'foo'
(function() { return false; })() || (function() { return true; })(); // -> true (executes both functions)
(function(i) { return [i*2,i*3,i*4]; })(2)[1]; // -> 6
$('selector')[0]; // ...
// etc.
これはどのような方法でjQueryに関連していますか? – rid
まあ、それはちょうどもっとjavascriptの構文だと思います – stinkycheeseman