2010-12-02 67 views
0

我觉得这么粗糙地问这个问题,但在Firebug中,我看到了我当前的对象(this),然后在下面有一行,“object Window”,其中全局名称空间似乎存在(例如,有一个$对象,jQuery对象...)。我有一个我创建的名为“g”的对象,其中包含一个名为“Update”的函数,它位于这个全局命名空间中(再次使用这个术语)。如何访问“对象窗口”中的javascript函数

我在这里使用正确的术语吗? jQuery对象是否存在于“全局命名空间”中?此外,如果我想打电话给住在这里的人,只需拨打g.Update()?如果说这些相当于你在OO术语中称之为静态变量的东西,那是对的吗?

谢谢!

+0

thngs很简单,在_browser_` window对象中实现_ECMAScript_`Global`对象。因此,全局项是窗口的属性,例如`javascript:alert(window.parseInt)` – 2010-12-02 22:41:04

回答

2

如果我理解正确的问题,缺省是最后范围“窗口”,所以如果你没有申报的“g”别的地方在你的范围内,最后放它看起来是在“窗口”

工作实例

g = { Update: function() {} }; 

function foo() 
{ 
    g.Update(); 
} 

不工作例如:

g = { Update: function() {} }; 

function foo(g) 
{ 
    g.Update(); 
} 
0

你是使用正确的术语,当有人提到“全球范围”,他们的意思是window ......这是最高的范围。

对于jQuery:,全局名称空间中的jQuery行,window.jQuery或别名window.$

你怎么叫什么取决于你的结构,但如果你用的方法Update,无论g是进入了一个访问对象g(全球与否)g.Update()会工作。

0

'这' 指的是用于调用函数,其中,默认情况下,是 '窗口' 的对象..

这意味着您调用它们时的任何“静态”变量都是window对象的所有成员。做g.Update()相当于做window.g.Update()或this.g.update()(最后一个只有当这行代码不是一个函数或另一个对象时)。