我觉得愚蠢地用粗暴的方式问这个问题,但是在Firebug中,我看到了我当前的对象(这个),然后看到了一条线,然后是“对象窗口”,全局命名空间似乎存在(例如,有一个{ {1}}对象,$
对象...)。我创建了一个名为“g”的对象,其中包含一个名为“Update”的函数,该函数位于此全局命名空间中(同样,松散地使用该术语)。
我在这里使用正确的术语吗? jQuery对象是否存在于“全局命名空间”中?此外,如果我想打电话给住在这里的东西,我只需要拨打电话,比如jQuery
吗?说这些是否等同于你在OO术语中称为静态变量的说法是正确的吗?
谢谢!
答案 0 :(得分:2)
如果我正确理解了这个问题,默认的最后一个范围是'window',所以如果你没有在你的范围内的其他任何地方声明'g',它将会查看的最后一个地方是'window'
工作示例
g = { Update: function() {} };
function foo()
{
g.Update();
}
不工作的例子:
g = { Update: function() {} };
function foo(g)
{
g.Update();
}
答案 1 :(得分:0)
你是有点使用正确的术语,当有人提到“全球范围”时,他们的意思是window
......它是最顶级的范围。
对于jQuery: yes ,全局命名空间中的jQuery行,window.jQuery
或别名window.$
。
如何调用某些内容取决于您的结构,但如果您有一个方法g
的可访问对象Update
(全局与否),g
可以访问g.Update()
{{1}}会工作的。
答案 2 :(得分:0)
'this'指的是用于调用函数的对象,默认情况下是'window'。
这意味着您调用的任何“静态”变量都是window
对象的成员。执行g.Update()
等同于执行window.g.Update(
)或this.g.update()
(最后一个仅在此代码行不是函数或其他对象时才起作用。)