从内部访问当前对象

时间:2012-09-14 13:55:27

标签: javascript object

  

可能重复:
  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分配第二个元素。

2 个答案:

答案 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];}
}