在最近几天我对javascript中的匿名函数感兴趣,所以我开始“探索”jquery等框架,在第一行我看到了这段代码:
var jQuery = (function() { .. functions .. }();
并且想到了一个问题 - 该代码的目的是什么? 为什么变量包含匿名函数?该变量的用途是什么?它是一种功能容器还是什么?如果是如何访问这些功能?
答案 0 :(得分:3)
该代码的目的是什么?
您实际上缺少一个右括号,以使此代码有效javascript:
var jQuery = (function() { ... })();
它定义了一个匿名函数并立即执行它将结果存储在变量中。
你可以这样想:
var jQuery = foo();
只是他们没有费心将foo
定义为外部函数,因为他们不需要在代码中的其他位置调用它。因此他们将其定义为匿名函数。
通过这样做,在此匿名函数中声明的所有内容都是作用域,并且只能包含匿名函数。外面无法进入。
答案 1 :(得分:0)
通过减少函数的所有内容的范围,可以防止可能的全局范围内的冲突,意外提升,并最小化窗口对象的附加对象。