0

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||{}))

4

0 に答える 0