【发布时间】:2014-05-04 06:57:09
【问题描述】:
我见过一些这样的例子
(function($, window, undefined) {
...
// Do awesome stuff
...
})(jQuery, this);
我理解将 jQuery 作为参数传递并作为 $ 接收。
这样做是为了避免 jquery 的 $ 和任何全局变量 $(错误定义或某些第三方库定义)之间的冲突。
为什么人们在函数参数中传递this 并接收为window 并且还接收undefined?
有什么方法可以覆盖 window 和 undefined 吗?
PS:我已经在 Chrome 中尝试过这个
undefined = 2; // 2
undefined == 2; // false
证明 undefined 不能被覆盖。
【问题讨论】:
-
最好看看这个answer
-
这个问题已经为你解答stackoverflow.com/questions/5021133/…
-
@Praveen 感谢您的链接。它说 undefined 可以更改,但我无法覆盖它。
-
@blunderboy 是的,它只能在函数范围内被覆盖,例如闭包
(function() { console.log(undefined); //undefined var undefined = 10; console.log(undefined);//returns 10 })(); -
@C-link 不重复因为我想问具体如何覆盖未定义和窗口变量?
标签: javascript jquery function parameters