Cible: le nom d'attribut de JS peut être utilisé avec des variables
Par exemple: objet JS
La copie de code est la suivante:
var objet;
object.prop1 = "value1";
object.prop2 = "value2";
La méthode suivante peut également être utilisée:
La copie de code est la suivante:
object.push ({prop1: "valeur1"});
object.push ({prop2: "value2"});
Ici, Prop1 peut être utilisé comme nom d'attribut, ou des citations peuvent être ajoutées, par exemple:
La copie de code est la suivante:
object.push ({"<span style =" font-Family: Arial, Helvetica, Sans-Serif; "> prop1 </span>": "value1"});
La signification des expressions est la même, c'est-à-dire que Prop1 ne peut être reconnue que comme une constante, et même si c'est une variable, elle est inutile, par exemple:
La copie de code est la suivante:
var prop1 = "prop2";
object.push ({prop1: "<span style =" font-Family: Arial, Helvetica, Sans-Serif; "> Value1 </span>"});
Que se passe-t-il si vous accédez à Prop2 via un objet comme celui-ci? Par exemple:
La copie de code est la suivante:
alert (<span style = "font-family: Arial, Helvetica, Sans-Serif;"> objet.prop2) </span>
Inutile de demander, bien sûr, il n'est pas défini, mais l'accès à objet.prop1 est "Value1"
La raison a été mentionnée. Que les guillemets soient ajoutés ou non, les attributs sont traités comme des constantes. Permettez-moi de vous donner un autre exemple:
La copie de code est la suivante:
var arr = [];
arr ['js'] = 'jQuery';
arr ['css'] = 'oocss';
var obj = {};
pour (var i dans arr)
{
obj.i = arr [i];
}
alerte (obj.js);
Les lecteurs se demandent quelle alerte sera imprimée?
Bien sûr, c'était indéfini.
Veuillez deviner à nouveau, que sera imprimé si alerte (obj.i)?
Bien sûr, c'est OOCSS, pourquoi? Parce que OBJ n'a plus qu'un seul attribut I, et à travers deux boucles, le devant d'Obj.i est écrasé par l'arrière.
S'il y a une exigence, vous devez ajouter des attributs dynamiquement, c'est-à-dire que l'attribut doit être une variable. Comme dans l'exemple de code ci-dessus, l'alerte (obj.js) n'est pas non définie, mais jQuery. Comment le modifier?
La copie de code est la suivante:
var arr = [];
arr ['js'] = 'jQuery';
arr ['css'] = 'oocss';
var obj = {};
pour (var i dans arr)
{
obj [i] = arr [i];
}
alerte (obj.js);
C'est aussi simple! Traitez l'objet OBJ comme un tableau, et il prend en charge l'utilisation de méthodes similaires aux indices pour attribuer des attributs et des valeurs d'attribut aux objets. Cependant, l'objet est toujours un objet, et Obj.Length n'existe pas.