[英]How to refer to Global name space in JS
JS全局命名空间的变量是什么?它有引用吗?我可以更改它吗? (免责声明是的,我知道如果可以的话,这是很糟糕的做法)
在浏览器中,可以通过window
访问。
alert(window.document === document); // true
我只是尝试使用Google Chrome浏览器中的分配更改它,但令人惊讶的是它没有任何效果。
浏览器中Javascript的全局命名空间/对象是window
。 据我所知,您可以更改它,但是不能更改。
编辑:我错了。 幸运的是,您无法更改它(例如window = {};
无效,至少在Chrome中无效)。
在未以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
全局名称空间具有以下名称:
window
//最常出现
top
//在某些情况下
self
parent
//在某些情况下
this
//在某些情况下
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.