非常に単純な jQuery プラグインのボイラープレートを取り上げます。
var _defaults = {
foo: false
};
function Plugin( settings ) {
this.opts = $.extend( {}, _defaults, settings );
}
オプションが に設定されているdoSomething
場合にのみ正常に実行できるメソッドがあり、特定の時点で他のメソッドが実行される可能性があるため、ステートメントをどこに配置するかについてジレンマがありました。最初に私は考えました:foo
true
doSomething()
if
Plugin.prototype = {
doSomething: function() {
// Do something that depends on foo
},
method: function() {
...
if ( this.opts.foo ) { this.doSomething() }
},
method: function() {
...
if ( this.opts.foo ) { this.doSomething() }
}
};
しかし、その後、乾燥のために私はこれを行うことにしました:
Plugin.prototype = {
doSomething: function() {
if ( this.opts.foo ) {
// Do something that depends on foo
}
},
method: function() {
...
this.doSomething();
},
method: function() {
...
this.doSomething();
}
};
そのため、 isdoSomething
の場合、空であっても関数を実行するメソッドを利用できるようになりました。foo
false
だから私の質問は、より良いアプローチは何ですか? 2 つ目は短いですが、空の関数を実行する必要がない場合でも、毎回メソッドをルックアップする必要があります。最初のものはより効率的ですか?
ああ、そうです、おそらくこれはマイクロ最適化であり、心配する必要はないと人々は言うでしょうが、私はただ興味があります...