2012-10-08 47 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 
}