JS全局命名空间的变量是什么它有引用并且我可以更改它吗? (免责声明是的,如果可以,我知道这是一种可怕的做法)
答案 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
//在某些情况下