Dies ist das Objekt Notation. Hier ist das erste Wort vor ':' der Schlüssel. Es ist immer eine Zeichenfolge. Es ist, als würde man dem Wert, den man zuweisen möchte, einen Namen geben. Der zweite ist der Wert. In dieser Schreibweise können Sie keine Variable als Schlüssel zuweisen. Key wird immer konstant sein und eine Zeichenfolge.
{ gold: gold, silver: silver }
is same as
var obj = { 'gold': gold, 'silver': silver }
Um eine Variable als Schlüssel zuzuweisen, müssen Sie die eckige Klammernnotation verwenden.
var key1='gold';
var key2='silver';
var obj={};
// assuming gold and silver to defined
obj[key1]=gold;
obj[key2]=silver;
In beiden Fällen sind obj gleich. Das zweite Format kann jedoch verwendet werden, wenn Schlüsselnamen vor dem Zuweisen von Werten bekannt sind.
Zum Beispiel kann Code sieht ein Objekt (eine Ebene) zu klonen:
function clone(original){
var clone={};
for(var key in original){
// Dont know what is the value of key. So we need to use square
//bracket. clone.key would be incorrect to use because it would be
//considered string.
clone[key]=original[key];
}
return clone;
}
Was @IrkenInvader sagte. Ich stelle mir vor, Sie sind einfach neugierig darauf, wie der Code funktioniert, aber wenn Sie eigentlich _wollt_ '{5: 5}', würde ich sagen, dass (in den meisten Fällen) '{gold: 5}' eine weitaus sinnvollere Objektstruktur ist . –
Der Titel und die Tags scheinen nicht wirklich etwas mit Ihrer eigentlichen Frage zu tun zu haben. Ich habe deine Frage aktualisiert/vereinfacht. Fühlen Sie sich frei, umzukehren, wenn Sie es nicht mögen. –