Maison > interface Web > js tutoriel > le corps du texte

Comment accéder dynamiquement aux propriétés d'un objet avec des variables en JavaScript ?

Patricia Arquette
Libérer: 2024-10-30 16:07:36
original
634 Les gens l'ont consulté

How to Dynamically Access Object Properties with Variables in JavaScript?

Accès dynamique aux propriétés avec des variables en JavaScript

En JavaScript, l'accès dynamique aux propriétés d'objet à l'aide de variables peut poser des défis. Considérons le scénario suivant :

var myObj;
myObj.prop = "exists";
var myProp = "p"+"r"+"o"+"p";

if(myObj.myProp){
    alert("yes, i have that property");
};
Copier après la connexion

Dans cet exemple, nous voulons vérifier si la propriété prop existe dans l'objet myObj. Cependant, la condition myObj.myProp est évaluée comme indéfinie car elle vérifie en fait l'existence d'une propriété inexistante (myObj.myProp).

Pour accéder dynamiquement correctement à la propriété, nous pouvons utiliser les techniques suivantes :

1. Méthode hasOwnProperty :

La méthode hasOwnProperty vérifie si l'objet a une propriété spécifique dans sa propre liste de propriétés (à l'exclusion des propriétés héritées).

var myProp = 'prop';
if(myObj.hasOwnProperty(myProp)){
    alert("yes, i have that property");
}
Copier après la connexion

2. Opérateur in :

L'opérateur in vérifie si l'objet possède une propriété spécifiée, y compris les propriétés héritées.

var myProp = 'prop';
if(myProp in myObj){
    alert("yes, i have that property");
}
Copier après la connexion

3. Notation abrégée :

Si le nom de la propriété est une chaîne littérale, nous pouvons utiliser une notation abrégée :

if('prop' in myObj){
    alert("yes, i have that property");
}
Copier après la connexion

Remarque importante :

  • La méthode hasOwnProperty ne vérifie pas les propriétés héritées, contrairement à l'opérateur in.
  • Lors de l'utilisation de l'opérateur in, il est recommandé d'attribuer d'abord le nom de la propriété à une variable pour améliorer les performances.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal