2012-10-08 66 views
28

Duplicar posibles:
Access JavaScript Object Literal value in same objectpropiedades de los objetos de acceso dentro objeto

primer vistazo al siguiente objeto JavaScript

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

Quiero configurar birthplace valor igual a country, así que puse el valor del objeto country en frente de birthplace pero no funcionó para mí, también utilicé this.country pero aún fallaba. Mi pregunta es cómo acceder a la propiedad del objeto dentro del objeto.

Algunos usuarios son adictos a preguntar "qué quieres hacer o enviar tu script, etc." la respuesta para esos ppls es simple "Quiero acceder a la propiedad del objeto dentro del objeto" y el script se menciona arriba.

Cualquier ayuda será apreciada :)

Saludos

+0

¿Cómo se define su país var? –

+0

Duplicados: 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

Respuesta

53

No se puede hacer referencia a un objeto durante la inicialización cuando se utiliza objeto sintaxis literal de. Debe hacer referencia al objeto una vez creado.

settings.birthplace = settings.country; 

La única manera de hacer referencia a un objeto durante la inicialización es cuando se utiliza una función constructora.

Este ejemplo utiliza una función anónima como constructor. El nuevo objeto es referencia con this.

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

No puede acceder al objeto dentro de sí mismo. Usted es variable:

var country = "country"; 
var settings = { 
    user:"someuser", 
    password:"password", 
    country:country, 
    birthplace:country 
} 
Cuestiones relacionadas