我知道我可以在静态对象中创建静态对象,例如:
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) {
}
}
可以吗?
答案 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;
}
}
}
感谢大家帮忙:)