Javascript 是否有一种方法可以从父对象的父对象运行某些内容?
可能重复:Javascript 是否有一种方法可以从父对象的父对象运行某些内容?,javascript,Javascript,可能重复: 我有点困惑怎么说,但我想从代码“this.this.”中得到我所期望的 阵列中 Foo = { bar : { Tool : function() { return this.this.foofoo; }, }, foofoo : "rawr" } 从函数Foo.bar.Tool()中,如何让它访问数据foooo 谢谢 恐怕你不能 此的工作方式与您可能期望的不同——它指代您
我有点困惑怎么说,但我想从代码“this.this.”中得到我所期望的 阵列中
Foo =
{
bar :
{
Tool : function()
{
return this.this.foofoo;
},
},
foofoo : "rawr"
}
从函数Foo.bar.Tool()中,如何让它访问数据foooo
谢谢 恐怕你不能
此
的工作方式与您可能期望的不同——它指代您调用函数的对象,与函数的定义位置无关
例如:
var blah = { prop: 'blahprop' };
var cow = {
cowfunc: function() {
alert(this.prop); // Notice there's no 'prop' in cow
}
};
blah.blahfunc = cow.cowfunc;
blah.blahfunc(); // alerts 'blahprop'
如果您想要这种行为,您需要传入foooo
(或其父项)
或者,您可以像问题中那样初始化Foo
,然后在bar
上设置对Foo
的引用:
Foo.bar.Foo = Foo;
然后,假设您在栏上调用工具
,您可以将工具
更改为:
Tool: function() {
return this.Foo.foofoo; // 'this' refers to bar when called like bar.Tool()
}
恐怕你不能
此
的工作方式与您可能期望的不同——它指代您调用函数的对象,与函数的定义位置无关
例如:
var blah = { prop: 'blahprop' };
var cow = {
cowfunc: function() {
alert(this.prop); // Notice there's no 'prop' in cow
}
};
blah.blahfunc = cow.cowfunc;
blah.blahfunc(); // alerts 'blahprop'
如果您想要这种行为,您需要传入foooo
(或其父项)
或者,您可以像问题中那样初始化Foo
,然后在bar
上设置对Foo
的引用:
Foo.bar.Foo = Foo;
然后,假设您在栏上调用工具
,您可以将工具
更改为:
Tool: function() {
return this.Foo.foofoo; // 'this' refers to bar when called like bar.Tool()
}
只需逐字引用父对象:
Foo =
{
bar :
{
Tool : function()
{
return Foo.foofoo;
},
},
foofoo : "rawr"
}
alert(Foo.bar.Tool()); // alerts "rawr"
只需逐字引用父对象:
Foo =
{
bar :
{
Tool : function()
{
return Foo.foofoo;
},
},
foofoo : "rawr"
}
alert(Foo.bar.Tool()); // alerts "rawr"
在JavaScript中,变量(和对象的属性)引用值;它们不包含它们。考虑这个代码:
var foo = { message:"hello" };
var bar1 = { o:foo };
var bar2 = { b:foo };
在上面的例子中,bar1.o
是与bar2.a
相同的对象。您可能会考虑<代码> FoO 的“父”,这是没有关于任何值的名称或所有权的信息。
对于现有的数据结构,您无法随心所欲。您需要提供返回“父对象”的显式指针,或者在局部变量周围使用闭包。在JavaScript中,变量(和对象属性)引用值;它们不包含它们。考虑这个代码:
var foo = { message:"hello" };
var bar1 = { o:foo };
var bar2 = { b:foo };
在上面的例子中,bar1.o
是与bar2.a
相同的对象。您可能会考虑<代码> FoO 的“父”,这是没有关于任何值的名称或所有权的信息。
对于现有的数据结构,您无法随心所欲。您需要提供返回“父”的显式指针,或者在局部变量周围使用闭包