如何在JS中引用全局名称空间

时间:2011-08-03 18:28:15

标签: javascript namespaces global

JS全局命名空间的变量是什么它有引用并且我可以更改它吗? (免责声明是的,如果可以,我知道这是一种可怕的做法)

4 个答案:

答案 0 :(得分:1)

在浏览器中,可以通过window访问它。

alert(window.document === document);    // true

我只是尝试使用Google Chrome中的作业进行更改,但令人惊讶的是它没有效果。

答案 1 :(得分:1)

浏览器中Javascript的全局命名空间/对象是window。据我所知,你可以改变它,但不要改变它。

编辑:我错了。谢天谢地,您无法更改它(例如window = {};无效,至少在Chrome中无效。)

答案 2 :(得分:1)

在未以ECMAScript 3.1严格模式运行的JavaScript中,您可以使用关键字this引用全局对象,但仅限于在具有对象上下文的函数内不执行代码时。

// In global scope:
alert(this.Math === Math);  //-> true

function test() {
    alert(this.Math === Math);
}

test();     //-> true

var someObj = {};
test.call(someObj); //-> false, `this` is `someObj`

在浏览器中,正如其他答案所提到的,window对象也是全局对象。

alert(this === window); //-> true
alert(this.alert === window.alert); //-> true

答案 3 :(得分:0)

全局命名空间具有以下名称:

window //最常见的

top //在某些情况下

self

parent //在某些情况下

this //在某些情况下