Javascript 内部对象访问容器

Javascript 内部对象访问容器,javascript,Javascript,内部对象(t1)是否有访问其容器对象的方法 var t = { fnc1: function(){ alert("fnc1"); }, t1: { fnc2: function(){ alert("fnc2"); },

内部对象(t1)是否有访问其容器对象的方法

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();