作为一种样式约定,当我在全局范围内访问变量时,我喜欢明确,更喜欢
window.example = "Hello";
window.alert(window.example);
到较不详细的
example = "Hello";
alert(example);
我现在有一个可以直接从浏览器使用的模块,或者,如果它们可用,则来自Web工作者。在Web worker中,全局对象称为self
,而在浏览器中称为window
。
window
对象具有自我属性,因此self.example = "Hello"
可以在两种情况下都有效,只要没有人重新声明self
(正如他们经常做的那样:var self = this )。
最好的约定是什么?
self
并希望没有人声明有冲突的self
。window
,请使用window
,否则请使用self
。考虑到这一点后,我倾向于选择第二个。
答案 0 :(得分:7)
在全局范围内,无论是在页面还是Web工作者中,您都可以编写如下代码:
(function( global ) {
// ... whatever
}( this );
然后在主外部函数中你可以使用“global”(或称之为“window”或“self”或“whatever”),它可以在任何一个上下文中工作(或者在Node.js中工作)。
答案 1 :(得分:1)
我建议
var global; try { global = window } catch(e) { global = self }
答案 2 :(得分:0)
您可以创建自己对窗口或自我的引用:
var my_window = window || self;