有几位朋友建议我阅读developer.mozilla.org/en/JavaScript/Reference/Global_Objects:
这里的术语“全局对象”[1]不要与全局对象 [2]混淆。这里,全局对象[3]引用全局范围中的对象。全局对象[4]本身可以在全局范围内由this
访问。实际上,全局范围包含全局对象的属性[5](包括继承的属性,如果有的话)。
老实说,我完全被上面的话弄糊涂了。第一句话告诉我not to be confused
,但它确实让我困惑。好吧,英语不是我的母语,也许这就是原因。
有global object(s)
的5次和global scope
的3次!
global object
[4,5]是global objects
[1]还是global object
[2]?
答案 0 :(得分:1)
简答: 4
和5
相当于2
。
长答案:“全局对象”是JavaScript的语言结构,可以使用代码中的global
或window
变量进行访问。该对象包含以某种方式定义的所有。
“全局对象”表示在JavaScript环境的主范围内定义的所有对象。主范围(或“全局范围”)表示“全局对象”的直接子(属性)。
如果我在任何函数之外的JavaScript中定义变量myVariable
,则此变量位于“全局范围”中,即使用global.myVariable
(或window.myVariable
){{1}可访问是对“全局对象”的引用。
我建议您了解JavaScript的功能范围是如何工作的:https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope
答案 1 :(得分:1)
Mozilla的措辞无益。我建议你不要理会。 p>
有一个全局对象。这是ECMAScript language specification中明确定义的构造。它有几个目的,尤其是全局对象的属性随处可用。这就是Mozilla所说的“全球对象”;它们更准确,更有用地被称为“全球对象的属性”。
全局范围所指的文章的含义是不在任何函数内部的代码。在此类代码中,this
是对全局对象的引用。在浏览器中的JavaScript中,window
可以被视为全局对象,并且可以在任何地方访问。
总之,2,4和5是相同的。 1和3是“你应该忘记的全局对象属性”的不良名称。
答案 2 :(得分:0)
全局对象是主要对象。把它想象成上帝。像上帝一样,只有一个全球物体。在浏览器中,window
标识符引用它。
全局对象是所有属于上帝属性的对象(全局对象)。浏览器内置了许多全局对象,如location
,document
,XMLHttpRequest
,alert
方法等。
您可以通过以下方式创建其他全局对象:
最好将全局对象称为“全局变量”,“全局函数”,“全局成员”,“全局属性”等,以免它们与Global对象混淆。