Web 上のさまざまなコード サンプルで、2 つの異なるクロージャ フォームがあることに気付きましたが、2 つの違い (あるとしても) を識別するものを見つけることができませんでした。
var module = (function() { ... })()
と
var module = (function() { ... }())
以下のサンプルでは、どちらも機能的には同等のように見えますが、かつてはこの違いが重要だったことを思い出すようです (コードは一方の形式では機能し、他方の形式では機能しませんでした)。
var sdk =(function(){
var privacy='illusion';
return (
{
getPrivacy: function(){return privacy;}
});
})()
console.log(sdk.getPrivacy());
最後から2番目の行が置き換えられたコードフラグメントと同じようです}())
Module オブジェクトを渡してパブリック プロパティ/メソッドを関連付ける場合も同様です。
var sdk =(function($){
var privacy='illusion';
$.getPrivacy = function() { return privacy;}
return($);
})(sdk=sdk||{})
console.log(sdk.getPrivacy());
またはそれに対応する形式で終わる}(sdk=sdk||{}))