Ziel: Der Attributname von JS kann mit Variablen verwendet werden
Zum Beispiel: JS -Objektobjekt kann beim Zuweisen von Attributen dem Objekt die folgende Methode verwendet werden
Die Codekopie lautet wie folgt:
var Objekt;
Object.Prop1 = "value1";
Object.Prop2 = "value2";
Die folgende Methode kann auch verwendet werden:
Die Codekopie lautet wie folgt:
Object.push ({prop1: "value1"});
Object.push ({prop2: "value2"});
Hier kann Prop1 als Attributname verwendet werden, oder Zitate können hinzugefügt werden, z. B.:
Die Codekopie lautet wie folgt:
Object.push ({"<span style =" font-family: arial, helvetica, sans-serif; "> prop1 </span>": "value1"});
Die Bedeutungen von Ausdrücken sind gleich, dh Prop1 kann nur als Konstante erkannt werden, und selbst wenn es sich um eine Variable handelt, ist es zum Beispiel nutzlos:
Die Codekopie lautet wie folgt:
var prop1 = "prop2";
Object.push ({prop1: "<span style =" font-family: arial, helvetica, sans-serif; "> value1 </span>"});
Was passiert, wenn Sie über wie dieses auf Prop2 zugreifen? Zum Beispiel:
Die Codekopie lautet wie folgt:
alert (<span style = "Schriftfamilie: Arial, Helvetica, sans-serif;"> Objekt.Prop2) </span>
Unnötig zu fragen, ist es natürlich undefiniert, aber auf Objekt zuzugreifen. Prop1 ist "Value1", aber "Value1".
Der Grund wurde erwähnt. Unabhängig davon, ob Anführungszeichen hinzugefügt werden oder nicht, werden Attribute als Konstanten behandelt. Lassen Sie mich Ihnen ein weiteres Beispiel geben:
Die Codekopie lautet wie folgt:
var arr = [];
arr ['js'] = 'jQuery';
arr ['CSS'] = 'oocss';
var obj = {};
für (var i in arr)
{
obj.i = arr [i];
}
Alarm (obj.js);
Die Leser fragen sich, welche Alarmbereitschaft drucken wird?
Natürlich war es undefiniert.
Bitte raten Sie noch einmal, was wird gedruckt, wenn Sie aufmerksam sind (obj.i)?
Natürlich ist es OOCSS, warum? Weil Obj jetzt nur noch ein Attribut I hat und durch zwei Schleifen die Front von OBJ.II wird von der Rückseite überschrieben.
Wenn es eine Anforderung gibt, müssen Sie Attribute dynamisch hinzufügen, dh das Attribut muss eine Variable sein. Wie im obigen Beispielcode ist Alert (obj.js) nicht undefiniert, sondern JQuery. Wie modifiziere ich es?
Die Codekopie lautet wie folgt:
var arr = [];
arr ['js'] = 'jQuery';
arr ['CSS'] = 'oocss';
var obj = {};
für (var i in arr)
{
obj [i] = arr [i];
}
Alarm (obj.js);
Es ist so einfach! Behandeln Sie das Objekt OBJ als Array und unterstützt die Verwendung von Methoden, die den Einweisen ähnlich sind, um Objekten Attribute und Attributwerte zuzuweisen. Das Objekt ist jedoch immer noch ein Objekt, und obj.length existiert nicht.