2番目の完全な例は次のとおりです。
function doSomething()
get value1
get value2
...rest of function
}
$('.ep').on('click', doSomething);
次に、これら 2 つは機能的に同一であるため、パフォーマンスは同じです。最初に、無名関数を定義し、それを引数として渡します。2 番目では、名前付き関数を定義し、名前付き関数を引数として渡します。どちらの場合も、同じ関数本体が実行されます。
ただし、この例のパフォーマンスは向上する可能性があります。
var doSomething = (function(){
get value1
get value2
return function(){
...rest of function
}
})();
$('.ep').on('click', doSomething);
これは、この例では、即時関数を使用し、即時関数内で and を定義value1
しvalue2
て、代入する関数を返すためdoSomething
です。これは、即時関数の実行時にvalue1
とが一度value2
割り当てられることを意味しますが、Javascript クロージャーのおかげで、返される関数内で両方にアクセスできます。
これは、最初の 2 つの例とは対照的です。どちらも と を宣言value1
しvalue2
、イベントが発生するたびに関数を実行します。