如何在javascript中的静态对象内创建可实例化的对象?

时间:2015-05-12 09:56:36

标签: javascript

我知道我可以在静态对象中创建静态对象,例如:

aaa: {
    bbb: {}
    ccc: {}
}

但是我想创建我可以实例化的对象,例如:

aaa: {
    bbb = function(yyy): {
        this.variable // this one will be belong to aaa(parent object) instead of an instance of bbb
    }
    ccc = function(ooo) {
    }
}

可以吗?

3 个答案:

答案 0 :(得分:0)

根据定义,静态不会有这个'这个'参考,因为这将解决一个特定的实例。基本上你可以实现你想要做的事情:

aaa:
{
    bbb: (function() 
    {
        aaa.variable = 'something';
    })(),

    ccc:
    {

    }
}

请注意,此处的bbb值是(自执行)函数的返回值(null)。看起来有点奇怪的做事方式,如果可能的话会建议重新加工

答案 1 :(得分:0)

试试这个。但是,“bbb”中的“this”只会引用bbb对象。如果你想引用aaa,因为aaa是一个静态对象,你可以使用aaa.x表示法。

var aaa = {
    bbb: function(x) {
        this.x = x;
        aaa.x = x;
    },
    ccc: function(y) {
        this.y = y;
    }, 
    x: 10,
    y: 20
};

console.log(aaa.x);       // 10
var newB = new aaa.bbb(50);
console.log(newB.x);      // 50
console.log(aaa.x);       // 50

答案 2 :(得分:0)

好的,解决它的解决方案是使用"新对象"啄。

all:
{
    Aaa:
    {
       create: function(yyy)
       {
           aaa = new Object();
           aaa.variable = value;
           return aaa;
       }
    }
}

感谢大家帮忙:)