mozilla的术语“全球对象”使我感到困惑

时间:2010-10-20 11:49:19

标签: javascript terminology mozilla

有几位朋友建议我阅读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]?

3 个答案:

答案 0 :(得分:1)

简答: 45相当于2

长答案:“全局对象”是JavaScript的语言结构,可以使用代码中的globalwindow变量进行访问。该对象包含以某种方式定义的所有

“全局对象”表示在JavaScript环境的主范围内定义的所有对象。主范围(或“全局范围”)表示“全局对象”的直接子(属性)。

如果我在任何函数之外的JavaScript中定义变量myVariable,则此变量位于“全局范围”中,即使用global.myVariable(或window.myVariable){{1}可访问是对“全局对象”的引用。

我建议您了解JavaScript的功能范围是如何工作的:https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope

答案 1 :(得分:1)

Mozilla的措辞无益。我建议你不要理会。

有一个全局对象。这是ECMAScript language specification中明确定义的构造。它有几个目的,尤其是全局对象的属性随处可用。这就是Mozilla所说的“全球对象”;它们更准确,更有用地被称为“全球对象的属性”。

全局范围所指的文章的含义是不在任何函数内部的代码。在此类代码中,this是对全局对象的引用。在浏览器中的JavaScript中,window可以被视为全局对象,并且可以在任何地方访问。

总之,2,4和5是相同的。 1和3是“你应该忘记的全局对象属性”的不良名称。

答案 2 :(得分:0)

全局对象是主要对象。把它想象成上帝。像上帝一样,只有一个全球物体。在浏览器中,window标识符引用它。

全局对象是所有属于上帝属性的对象(全局对象)。浏览器内置了许多全局对象,如locationdocumentXMLHttpRequestalert方法等。

您可以通过以下方式创建其他全局对象:

  • 声明全局(非原始)变量(在全局执行上下文中声明变量)
  • 声明全局函数(在全局执行上下文中声明函数)

最好将全局对象称为“全局变量”,“全局函数”,“全局成员”,“全局属性”等,以免它们与Global对象混淆。