【问题标题】:How to override window and undefined in javascript? [duplicate]如何在javascript中覆盖窗口和未定义? [复制]
【发布时间】: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


【解决方案1】:

试试这个

function test () {
    var undefined = 2; // 2
    console.log(undefined == 2); // true

    var window = 5; // 5
    console.log(window == 5); // true
}

我相信您可以在function 内更改undefinedwindow 的值,但不能在global 范围内进行更改

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多