2

オブジェクトの初期化時に独自のプロパティを参照できますか?

一意である必要があり、1つしか存在しないオブジェクトがあるため、初期化子などはありません.

次のようなものを使用します。

var Myobj = {
    property1 : aaa,
    property2 : bbb,
    property3 : {a: self.property1 }
                /*  ^-- is this somehow possible without using a function? 
                        Or a better way to solve / structure this. .init() 
                        best option? */
};

>>フィドル<<

実際のオブジェクト(実際のコード内) には、使用する関数などのオプションを取る add 関数があります。これは、"addEventListener"の一種のラッパーであり、リスナーを削除できるようにする必要があります。これには、非匿名が必要です。関数参照。

Myobj内で使用する関数は文字列、または options から の数値キーで指定します Myobj.add()

4

2 に答える 2

1

Object literalsundefined終了まで残る}ため、property3 を関数にするか、オブジェクト全体を関数にする必要があります。

var Myobj = {
    property1 : 'aaa',
    property3 : function (){ return { a : this.property1 } }
};

また

var MyObj = function(){
  this.property1 = 'aaa',
  this.property3 = { a: this.property1 }
}
var MyObjInstance = new MyObj();

これは何度も尋ねられています:オブジェクトを宣言しながらプロパティにアクセスしますか?

于 2013-04-11T01:49:55.553 に答える
0

プレースホルダー配列を使用すると機能します。

var prop = new Array();
var Myobj = {
    property1 : 'aaa',
    property2 : 'bbb',
    property3 : {a: prop}
};
prop.push(Myobj.property1);

window.alert(Myobj.property3.a);

http://jsfiddle.net/y2XwC/1/

于 2013-04-11T02:00:00.430 に答える