0

我注意到,在网络上的不同代码示例中,有两种不同的闭包形式——但我无法找到任何可以识别两者之间差异(如果有的话)的东西。

var module = (function() { ... })()

var module = (function() { ... }())

在下面的示例中,它们似乎在功能上是等效的,但我似乎记得有一次,区别很重要(代码使用一种形式,而不是另一种形式)。

var sdk =(function(){
var privacy='illusion';
return (
    { 
        getPrivacy: function(){return privacy;}
    });
})()

console.log(sdk.getPrivacy());

似乎与倒数第二行替换为的代码片段相同}())

如果我传入一个 Module 对象以将公共属性/方法关联到:

var sdk =(function($){
  var privacy='illusion';
  $.getPrivacy = function() { return privacy;}
  return($);
})(sdk=sdk||{})

console.log(sdk.getPrivacy());

或其对应形式以}(sdk=sdk||{}))

4

0 回答 0