可能重复:
Self-references in object literal declarations
Can you call data from it's own json object?
我正在创建一个这样的对象:
var lines = {
all: [ /* Array */ ],
current: this.all[1]
}
但current: this.all[1]
会返回undefined
。我完全知道我可以像这样创建current
属性:
var lines = {
all: [ /* Array */ ]
}
lines.current = lines.all[1];
但我觉得这很麻烦,特别是在创建需要引用自己对象的多个属性时。
我尝试过使用
current: this.all[1]
(返回undefined
)和current: lines.all[1]
(lines
说不存在)如何引用我当前“进入”的对象的属性?例如,在我的第一个示例lines.current
中,将为lines.all
分配第二个元素。
答案 0 :(得分:3)
除了您发布的解决方案之外,还有另外一种解决方案:
var lines = new function() {
this.all = [ /* Array */ ];
this.current = this.all[1];
};
答案 1 :(得分:0)
因为当前可能只是getter
您应该根据某些约定将名称更改为getCurrent()
,因为数组中的顶部元素可能会更改
并将您的代码更改为这样的内容。
var lines = {
all: [ /* Array */ ],
getCurrent: function(){return this.all[1];}
}