作为一种风格约定,当我在全局范围内访问变量时,我喜欢明确,更喜欢
window.example = "Hello";
window.alert(window.example);
不那么冗长
example = "Hello";
alert(example);
我现在有一个可以直接从浏览器使用的模块,或者,如果它们可用,可以从网络工作者那里使用。在网络工作者中,全局对象被称为self
,而在浏览器中,它被称为window
。
该window
对象具有 self 属性,self.example = "Hello"
因此只要没有人重新声明self
(就像他们经常做的那样:var self = this),就可以在两种上下文中工作。
最好的约定是什么?
- 使用
self
并希望没有人声明冲突的self
. - 如果
window
已定义,则使用window
,否则使用self
。 - 还有什么?
考虑到这一点,我倾向于选择第二个。