我想知道两个闭包之间有什么区别:
(function(window, undefined) {
// JS code
})(window);
另一个
(function(window) {
// JS code
})(window, undefined);
答案 0 :(得分:0)
当您在旧的ES5之前的环境(例如Internet Explorer 8)中运行时,undefined
只是一个变量,可以被覆盖。
意思是,你可以这样做:
undefined = 42
console.log(undefined) // 42
当您将1个参数传递给闭包(window
)时,但是闭包函数需要2个参数(window
,undefined
),undefined
将是, ,未定义。这是为了防止页面上的其他代码覆盖undefined
。