可能性の重複:
Difference between (function(){})(); and function(){}();自己実行機能
私は少し良くはJavaScriptの機能のいくつかを理解しようとしています。
var obj = (function() {
var value = 0;
return {
increment: function(inc) {
value += typeof inc === "number" ? inc : 1;
},
getValue: function() {
return value;
}
}
})();
が、この例ではから取られJavaScript - The Good Parts
で、それはのようなので、丸括弧なしで上記の自己実行機能を持っている:The Definitive JavaScript
では、自己実行機能がそうのようなそれら丸括弧を持つべきであると述べています:これらの例の
var obj = function() {
var value = 0;
return {
increment: function(inc) {
value += typeof inc === "number" ? inc : 1;
},
getValue: function() {
return value;
}
}
}();
の両方が私のために働くが、私は私が知っておくべき機能に違いがあった場合にはお願いしたいと思いました。私はこれがあまりにも簡単ではないことを願っています。私はちょうど確信したかった。
ありがとうございます。
編集:ロブ・Wとして
は、件名に別のスレッドがあり、指摘しています。 This is an excellent blog regarding this issueは、他の投稿からリンクされていました。
この場合、どちらも同等です。 'var obj ='を省略すると、後者はエラーを投げます。したがって、バイトが高価にならない限り、#1に固執する。 –
大変感謝しています。ちょうど興味があることに興味があります:どのような状況で私は 'var obj ='を省略しますか?これはオブジェクトをトップレベルオブジェクトに戻しますか?乾杯。 – Joe
@Joe関数を実行したい(つまり、副作用が欲しい)場合は 'var obj'を省略しますが、値を返さない場合や、戻り値が何であるか気にしない場合は' var obj'を省略します。 – Alnitak