0

重複の可能性:
オブジェクトリテラル宣言で
の自己参照独自のjsonオブジェクトからデータを呼び出すことはできますか?

私は次のようなオブジェクトを作成しています:

var lines = {
    all: [ /* Array */ ],
    current: this.all[1]
}

ただし、current: this.all[1]戻り値undefinedcurrent次のようなプロパティを作成できることをよく知ってい ます。

var lines = {
    all: [ /* Array */ ]
}
lines.current = lines.all[1];

しかし、これは非常に厄介だと思います。特に、独自のオブジェクトを参照する必要がある複数のプロパティを作成する場合はそうです。

両方使ってみました

  • current: this.all[1](戻るundefined)と
  • current: lines.all[1]lines存在しないと言う)

現在「入っている」オブジェクトのプロパティを参照するにはどうすればよいですか?たとえば、私の最初の例でlines.currentは、から2番目の要素が割り当てられlines.allます。

4

2 に答える 2

3

あなたが投稿したものとは別の解決策が1つだけあります:

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 に答える