Ziel: js-Attributnamen können Variablen verwenden
Beispiel: js-Objektobjekt. Wenn Sie dem Objekt Attribute zuweisen, können Sie die folgende Methode verwenden
var-Objekt;
object.prop1 = "value1";
object.prop2 = "value2";
Sie können auch die folgende Methode verwenden:
object.push({prop1:"value1"});
object.push({prop2:"value2"});
Hier wird prop1 als Attributname verwendet, der direkt oder in Anführungszeichen verwendet werden kann, wie zum Beispiel:
object.push({"
prop1":"value1"});
Die Bedeutung des Ausdrucks ist dieselbe, das heißt, prop1 kann nur als Konstante erkannt werden, auch wenn es sich um eine Variable handelt, ist es nutzlos, zum Beispiel:
Was passiert, wenn Sie auf diese Weise über das Objekt auf prop2 zugreifen:
Code kopieren
Der Code lautet wie folgt:
warning(object.prop2)
Kein Grund zu fragen, natürlich ist es undefiniert, aber der Zugriff auf object.prop1 ist „value1“
Der Grund wurde bereits erwähnt. Unabhängig davon, ob Anführungszeichen enthalten sind oder nicht, werden Attribute als Konstanten behandelt:
Code kopieren
obj.i=arr[i];
}
alarm(obj.js);
Leser, raten Sie bitte, was in der Warnung gedruckt wird?
Natürlich ist es undefiniert.
Raten Sie noch einmal: Was wird bei Alarm (obj.i) gedruckt?
Natürlich ist es oocss, warum? Weil obj jetzt nur ein Attribut i hat und durch zwei Schleifen die Vorderseite von obj.i durch letzteres überschrieben wird.
Wenn Bedarf besteht, müssen Sie Attribute dynamisch hinzufügen, das heißt, das Attribut muss auch eine Variable sein. Wie im obigen Beispielcode ist Alert (obj.js) nicht undefiniert, sondern jquery ändern?
Code kopieren
Der Code lautet wie folgt:
var arr=[];
arr['js']='jquery';
arr['css']='oocss';
var obj={};
for(var i in arr)
{
obj[i]=arr[i];
}
alarm(obj.js);
So einfach ist das! Behandeln Sie das Objekt obj als Array, das die Verwendung von Methoden unterstützt, die den Indizes ähneln, um dem Objekt Attribute und Attributwerte zuzuweisen. Das Objekt ist jedoch immer noch ein Objekt und obj.length existiert nicht >