En JavaScript, vérifier la présence d'une propriété d'objet à l'aide d'une variable peut être une tâche courante. Cependant, utiliser directement la variable comme nom de propriété conduit à des résultats non définis.
Exemple :
<code class="js">var myObj; myObj.prop = "exists"; var myProp = "p" + "r" + "o" + "p"; if (myObj.myProp) { alert("yes, i have that property"); }; // Undefined</code>
Pour surmonter cela, il faut utiliser des méthodes qui vérifient explicitement la propriété existence.
Solutions :
Option 1 : hasOwnProperty
<code class="js">var myProp = 'prop'; if (myObj.hasOwnProperty(myProp)) { alert("yes, i have that property"); }</code>
Option 2 : dans l'opérateur ( vérifie les propriétés directes et héritées)
<code class="js">var myProp = 'prop'; if (myProp in myObj) { alert("yes, i have that property"); }</code>
Option 3 : utilisation directe par l'opérateur (vérifie uniquement les propriétés directes)
<code class="js">if ('prop' in myObj) { alert("yes, i have that property"); }</code>
Remarque : hasOwnProperty ne vérifie pas les propriétés héritées, contrairement à l'opérateur in.
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!