Javascript 内部对象访问容器
内部对象(t1)是否有访问其容器对象的方法Javascript 内部对象访问容器,javascript,Javascript,内部对象(t1)是否有访问其容器对象的方法 var t = { fnc1: function(){ alert("fnc1"); }, t1: { fnc2: function(){ alert("fnc2"); },
var t = {
fnc1: function(){
alert("fnc1");
},
t1: {
fnc2: function(){
alert("fnc2");
},
fnc3: function(){
this.fnc1();
}
}
};
t.t1.fnc3();
执行以下代码时,我得到一个错误“this.fnc1不是函数”,因为this引用的是t1对象而不是t对象
有没有办法访问fnc1?当然,只要不覆盖变量:
t.fnc1()
如果您想调用
fnc1()
作为t.t1
的一种方法,请使用或。尝试将Javascript用作纯OO语言,这通常会导致许多挫折
您可以尝试使用Javascript特有的功能,主要是函数和闭包。我以你为例,做了一个变体:
var t = function(){
var str = "fnc",
fnc1 = function(){
alert( str + "1");
};
return {
fnc1:fnc1,
t1:{
fnc2:function(){
alert( str + "2");
},
fnc3:fnc1
}
};
};
t().t1.fnc3();