2012-10-08 12 views
28

可能性の重複:
Access JavaScript Object Literal value in same objectAccessオブジェクトのプロパティ

次のJavaScriptオブジェクト

var settings = { 
    user:"someuser", 
    password:"password", 
    country:"Country", 
    birthplace:country 
} 

初めて目に私はcountryと同じbirthplace値を設定したいです、だから私はオブジェクトの値を入れてcountryの前にbirthplaceしかし、それは私のために働いていなかった、私もthis.countryを使用しても、まだ失敗しました。私の質問は、オブジェクト内のオブジェクトのプロパティにアクセスする方法です。

"あなたは何をしたいか、あなたのスクリプトを送るなど"と尋ねるユーザーがいます。これらのpplsに対する答えは単純です。 "オブジェクト内のオブジェクトプロパティにアクセスしたい"とスクリプトは上記です。

すべてのヘルプは理解されるであろう:)

よろしく

+0

あなたの国はどのように定義されていますか? –

+0

重複:http://stackoverflow.com/questions/4616202/self-references-in-object-literal-declarations、http://stackoverflow.com/questions/8036740/current-object-property-as-value-in -same-object-different-property、http://stackoverflow.com/questions/3173610/can-a-javascript-object-property-refer-to-another-property-of-the-same-object – user123444555621

答えて

53

オブジェクトリテラル構文を使用するときは、初期化時にオブジェクトを参照することはできません。オブジェクトを作成した後で参照する必要があります。

settings.birthplace = settings.country; 

あなたはコンストラクタ関数を使用する場合、初期化時にオブジェクトを参照する唯一の方法です。

この例では、匿名関数をコンストラクタとして使用しています。新しいオブジェクトはthisの参照です。

var settings = new function() { 
    this.user = "someuser"; 
    this.password = "password"; 
    this.country = "Country"; 
    this.birthplace = this.country; 
}; 
1

内部のオブジェクトにアクセスすることはできません。あなたは変数です:

var country = "country"; 
var settings = { 
    user:"someuser", 
    password:"password", 
    country:country, 
    birthplace:country 
} 
関連する問題