Why does jQuery pass the window object into their scope
本问题已经有最佳答案,请猛点这里访问。
好的,我正在为自己写一个项目的js库,我有一个问题。 像大多数其他库一样,为了保留我的变量范围,我将代码包装在此:
1 2 3 | (function() { // my code here })(); |
现在我的问题是:我注意到jQuery传递了window对象并设置了自己的文档对象,如下所示:
1 2 3 | (function(window) { var document = window.document; })(window); |
有谁知道他们为什么这样做?
是! 由于此函数中的窗口是局部变量,因此它允许缩小其名称。
此外,访问局部变量应该比全局变量更快。
您可以更快地访问本地变量,也可以使用以下内容缩短变量名称"window"(甚至"文档"):
1 2 3 4 5 | (function(w, d)(){ // use w and d var })(window, document) |