我想知道两个闭包之间有什么区别:

时间:2016-03-14 01:37:08

标签: javascript closures

我想知道两个闭包之间有什么区别:

(function(window, undefined) {
   // JS code
})(window);

另一个

(function(window) {
   // JS code
})(window, undefined);

1 个答案:

答案 0 :(得分:0)

当您在旧的ES5之前的环境(例如Internet Explorer 8)中运行时,undefined只是一个变量,可以被覆盖。

意思是,你可以这样做:

undefined = 42
console.log(undefined) // 42

当您将1个参数传递给闭包(window)时,但是闭包函数需要2个参数(windowundefined),undefined将是, ,未定义。这是为了防止页面上的其他代码覆盖undefined

相关问题