在javascript中,如果对象A有一个属性是另一个对象B,我怎么能得到B中的A.

时间:2015-05-05 15:10:28

标签: javascript

var A = {
    cc: 'opps',
    B: {
        dd: 'dd',
        getC: function () {
            return this.cc
        }
    }
}

我怎么能得到cc?在方法getC或function(){return this.cc} .bind(this)或其他方式返回A.cc?

1 个答案:

答案 0 :(得分:2)

如果它真的是一个像这样的一次性对象,只需使用A.cc

var A = {
    cc: 'opps',
    B: {
        dd: 'dd',
        getC: function () {
            return A.cc;
        }
    }
};

如果你有一个构造函数或构建器生成这些,那么你必须在构造函数中做一些事情。没有示例,很难帮助你,但例如:

// Constructor, used via new, e.g.: new Thingy()
function Thingy() {
    var t = this;
    t.cc = 'opps';
    t.B = {
        dd: 'dd',
        getC: function () {
            return t.cc;
        }
    };
}

// Builder, used without new, e.g.: createThingy()
function createThingy() {
    var A = {
        cc: 'opps',
        B: {
            dd: 'dd',
            getC: function () {
                return A.cc;
            }
        }
    };
    return A;
}