(function(){…})(); 这种写法是因为JS中没有块级作用域的概念,所以可以用lambda函数来模仿块级作用域,这个的作用是定义并立即调用一个lambda函数,这个函数中定义的任何变量,都在执行结束时将被销毁,这样写还有个好处就是可以避免命名空间的污染。(function(){…}()); 这种应该算是模块模式的写法,是为单例创建私有变量和特权方法使单例得到增强。如果都能运行 那最终效果是一样的 那个括号只是为了激活语法