如何在JS中引用全局命名空间
How to refer to Global name space in JS
什么是JS全局命名空间的变量,它有一个引用,我可以改变它吗?(免责声明是的,我知道这是很糟糕的做法,如果我可以的话)
在浏览器中,可以通过window
访问。
alert(window.document === document); // true
我只是试图改变它使用分配在谷歌浏览器,但令人惊讶的是,它没有效果。
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
//在某些情况下
相关文章:
- 全局引用b/t模板和视图
- Javascript-匿名函数中使用参数引用全局函数的闭包-我如何使用preventDefault
- 引用计时器JS的非全局变量
- 使用require.js后,如何通过简单的脚本引用访问jquery全局命名空间
- FireFox-在全局作用域中由id名称引用的元素.使用w3c标准
- 在处理程序之外传递对象引用,即使其全局化
- 我应该使用 self 还是窗口来引用全局范围
- 如何显式引用全局函数
- 防止 JavaScript 中的“全局”引用
- 通过 Excel VBA 引用 Acrobat Javascript 全局变量所需的语法是什么?
- CoffeeScript 在 'for v in values' 中创建一个全局变量 'v',导致事件中的错误引用
- 如何在 JavaScript 中覆盖全局函数,但保留对原始函数的引用
- 如何将全局作用域变量引用到局部作用域中
- 引用错误和全局对象
- Javascript硬编码对象可以作为参数,但不能引用全局对象
- 在foreach循环中引用全局jquery函数变量
- 为什么我的变量引用全局范围变量
- Javascript中的变量引用.通过函数引用全局变量并对其起作用
- 如何在JS中引用全局命名空间
- 无法在Jasmine中的嵌套描述函数中引用全局函数