关于javascript:为什么jQuery将window对象传递到它们的作用域中

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)