执行JavaScript代码的尴尬方式

这个问题在这里已经有了答案:

  • JavaScript关闭如何工作? 88个答案
  • 为什么这个函数用圆括号括起来,然后用括号括起来? [复制] 6个回答

  • 这是一个不好的例子。 考虑以下:

    var a = (function(){
        var ret = {};
        ret.test = "123";
        function imPrivate() { /* ... */ }
        ret.public = function() { imPrivate(); }
        return ret;
    })();
    

    a将包含varible test和public function,但不能访问imPrivate。 这是处理公共变量与私有变量的常用方法;

    请参阅为什么此函数用圆括号括起来,然后用括号括起来? 获取更多信息。


    var a = (function() {
      return foo(bar);
    })();
    

    在这种情况下,这是非常不必要的,但这不是错误的,它不会抛出错误。

    但有时候IIF使用像module pattern

    var a = (function() {
      /* some other code in own scope */
      return foo(bar);
    })();
    

    在这种情况下, IIF只是一个向外部输出内容的module


    闭包函数用于封装函数中的一些属性/方法。 很像其他语言的私人/公共原则。

    你可以在模块模式下找到更多关于这个主题的内容

    链接地址: http://www.djcxy.com/p/1471.html

    上一篇: Awkward way of executing JavaScript code

    下一篇: Javascript local and global variable confusion