Es gibt zwei verschiedene Notationen, um auf Objekteigenschaften zuzugreifen
- Dot Notation: myObj.prop1
- Bracket - Schreibweise: myObj [ "PROP1"]
Die Punktnotation ist schnell und einfach, aber Sie müssen den tatsächlichen Eigenschaftsnamen explizit verwenden. Keine Substitution, Variablen usw.
Die Klammernotation ist offen. Es wird eine Zeichenfolge verwendet, aber Sie können die Zeichenfolge mit einem beliebigen legalen js-Code erstellen. Sie können die Zeichenfolge als Literal angeben (obwohl in diesem Fall die Punktnotation leichter lesbar wäre) oder eine Variable verwenden oder auf irgendeine Weise berechnen.
Daher setzen diese alle die myObj- Eigenschaft mit dem Namen prop1 auf den Wert Hello :
// quick easy-on-the-eye dot notation
myObj.prop1 = "Hello";
// brackets+literal
myObj["prop1"] = "Hello";
// using a variable
var x = "prop1";
myObj[x] = "Hello";
// calculate the accessor string in some weird way
var numList = [0,1,2];
myObj[ "prop" + numList[1] ] = "Hello";
Tücken:
myObj.[xxxx] = "Hello"; // wrong: mixed notations, syntax fail
myObj[prop1] = "Hello"; // wrong: this expects a variable called prop1
tl; dnr : Wenn Sie den Schlüssel berechnen oder referenzieren möchten, müssen Sie die Klammernotation verwenden . Wenn Sie den Schlüssel explizit verwenden, verwenden Sie die Punktnotation für einfachen Code.
Hinweis: Es gibt einige andere gute und korrekte Antworten, aber ich persönlich fand sie etwas kurz, da ich mit JS on-the-fly-Skurrilität nur wenig vertraut bin. Dies kann für manche Menschen nützlich sein.