0

可能重复:
对象文字声明中的自引用
你能从它自己的 json 对象中调用数据吗?

我正在创建一个这样的对象:

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.

4

2 回答 2

3

除了您发布的解决方案之外,只有另一种解决方案:

var lines = new function() {
    this.all = [ /* Array */ ];
    this.current = this.all[1];
};
于 2012-09-14T13:59:08.547 回答
0

因为 current 可能只是getter
您应该根据某些约定将名称更改为,getCurrent()因为数组中的顶部元素可能会更改
并将您的代码更改为类似的内容。

var lines = {
    all: [ /* Array */ ],
    getCurrent: function(){return this.all[1];}
}
于 2012-09-14T14:10:36.260 回答