Maison >interface Web >js tutoriel >Comment accéder dynamiquement aux propriétés d'un objet avec des variables en JavaScript ?

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

Patricia Arquette
Patricia Arquetteoriginal
2024-10-30 16:07:36639parcourir

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

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

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

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

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!

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