2012-10-08 16 views
28

Mögliche Duplizieren:
Access JavaScript Object Literal value in same objectAccess-Objekteigenschaften innerhalb Objekt

Erster Blick auf die folgenden JavaScript-Objekt

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

I birthplace Wert gleich wie country festlegen möchten, also setze ich den Objektwert country vor birthplace, aber es hat nicht für mich funktioniert, ich habe auch this.country verwendet, aber immer noch fehlgeschlagen. Meine Frage ist, wie man auf die Eigenschaft des Objekts innerhalb des Objekts zugreift.

Einige Benutzer sind süchtig zu fragen "was Sie tun oder senden Sie Ihr Skript usw." die Antwort für diese ppls sind einfach "Ich möchte auf Objekteigenschaft innerhalb Objekt zugreifen" und das Skript ist oben erwähnt.

Jede Hilfe wird geschätzt werden :)

Grüße

+0

Wie ist Ihr Land var definiert? –

+0

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

Antwort

53

Sie können ein Objekt nicht während der Initialisierung verweisen, wenn Objektliteral Syntax. Sie müssen auf das Objekt verweisen, nachdem es erstellt wurde.

settings.birthplace = settings.country; 

Nur Art und Weise ein Objekt während der Initialisierung zu verweisen, wenn Sie eine Konstruktor-Funktion verwenden.

In diesem Beispiel wird eine anonyme Funktion als Konstruktor verwendet. Das neue Objekt ist eine Referenz mit this.

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

Sie können nicht auf das Objekt in sich selbst zugreifen. Sie sind variabel:

var country = "country"; 
var settings = { 
    user:"someuser", 
    password:"password", 
    country:country, 
    birthplace:country 
} 
Verwandte Themen