2012-10-08 241 views
28

可能重複:
Access JavaScript Object Literal value in same object訪問對象屬性

首先看看下面的JavaScript對象

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

我想設置birthplace值相同country,所以我把對象值countrybirthplace前面,但它沒有爲我工作,我也用this.country但仍然失敗。我的問題是如何訪問對象內的對象的屬性。

有些用戶沉迷於問「你想做什麼或發送你的腳本等」這些ppls的答案很簡單「我想訪問對象內的對象屬性」,腳本在上面提到。

任何幫助將不勝感激:)

問候

+0

你的國家的VAR如何定義? –

+0

Duplicates: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 
}