以下两个javascript代码有什么区别?

nta*_*lbs 7 javascript function

在一些使用立即函数的Javascript代码中,它有参数windowdocument类似如下:

(function (window, document) {
  ...
})(window, document);
Run Code Online (Sandbox Code Playgroud)

然而,windowdocument是全局对象,可通过后续可直接访问:

(function () {
  var userAgent = window.navigator.userAgent;
  ...
  var el = document.getElementById(...)
  ...
})();
Run Code Online (Sandbox Code Playgroud)

上述两个代码之间有什么区别.哪种方式更好,为什么?

Mar*_*des 4

我能想到的两个原因:

1)局部变量是作用域链中的第一个,因此它们的访问比全局变量更快(我的意思是更快)

2)在函数内部,windowdocument是局部变量,因此它们的名称可以最小化:

(function (w, d) {
//var userAgent = w.navigator.userAgent;

)(window, document);
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

159 次

最近记录:

12 年,3 月 前