Heim  >  Artikel  >  Web-Frontend  >  Verwenden Sie Variablen, um js-Attributnamen_Javascript-Fähigkeiten dynamisch festzulegen

Verwenden Sie Variablen, um js-Attributnamen_Javascript-Fähigkeiten dynamisch festzulegen

WBOY
WBOYOriginal
2016-05-16 16:33:281541Durchsuche

Ziel: js-Attributnamen können Variablen verwenden

Beispiel: js-Objektobjekt. Wenn Sie dem Objekt Attribute zuweisen, können Sie die folgende Methode verwenden

Code kopieren Der Code lautet wie folgt:

var-Objekt;
object.prop1 = "value1";
object.prop2 = "value2";
Sie können auch die folgende Methode verwenden:

Code kopieren Der Code lautet wie folgt:
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:


Code kopieren Der Code lautet wie folgt: var prop1 = "prop2"; object.push({prop1:"value1"});
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


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);



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 >
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn