Maison  >  Article  >  interface Web  >  Utiliser des variables pour définir dynamiquement les noms d'attributs js_compétences javascript

Utiliser des variables pour définir dynamiquement les noms d'attributs js_compétences javascript

WBOY
WBOYoriginal
2016-05-16 16:33:281537parcourir

Cible : les noms d'attributs js peuvent utiliser des variables

Exemple : objet js, lors de l'attribution d'attributs à l'objet, vous pouvez utiliser la méthode suivante

Copier le code Le code est le suivant :

objet var ;
objet.prop1 = "valeur1";
objet.prop2 = "valeur2";

Vous pouvez également utiliser la méthode suivante :
Copier le code Le code est le suivant :

object.push({prop1:"value1"});
object.push({prop2:"value2"});

Ici, prop1 est utilisé comme nom d'attribut, qui peut être utilisé directement ou entre guillemets, tels que :
Copier le code Le code est le suivant :

object.push({"prop1":"value1"});
Le sens de l'expression est le même, c'est-à-dire que prop1 ne peut être reconnu que comme une constante, même si c'est une variable, cela ne sert à rien, par exemple :

Copier le code Le code est le suivant :
var prop1 = "prop2";
object.push({prop1:"value1"});

Que se passe-t-il lorsque vous accédez à prop2 via un objet de cette manière ? Par exemple :


alert(object.prop2)

Pas besoin de demander, bien sûr ce n'est pas défini, mais accéder à object.prop1 est "value1"
La raison a déjà été mentionnée. Que les guillemets soient inclus ou non, les attributs sont traités comme des constantes :


Copier le code Le code est le suivant : var arr=[];
arr['js']='jquery';
arr['css']='oocss';
var obj={};
pour(var i dans arr)
{

obj.i=arr[i];
} alerte(obj.js);




Lecteurs, devinez ce que l'alerte imprimera ?

Bien sûr, ce n'est pas défini.

Devinez encore, qu'est-ce qui sera imprimé si alert(obj.i) ?

Bien sûr que c'est oocss, pourquoi ? Parce que obj n'a désormais qu'un seul attribut i, et à travers deux boucles, le devant de obj.i est écrasé par ce dernier.

S'il y a une demande, vous devez ajouter des attributs de manière dynamique, c'est-à-dire que l'attribut doit également être une variable. Comme dans l'exemple de code ci-dessus, alert(obj.js) n'est pas indéfini, mais jquery Comment faire. le modifier ?


Copier le code Le code est le suivant : 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 que cela ! Traitez l'objet obj comme un tableau, qui prend en charge l'utilisation de méthodes similaires aux indices pour attribuer des attributs et des valeurs d'attribut à l'objet. Cependant, l'objet est toujours un objet et obj.length n'existe pas. >

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn