Lorsque vous traitez des objets en JavaScript, il est souvent nécessaire de vérifier si une propriété spécifique existe. Cependant, si le nom de la propriété est stocké dans une variable, les méthodes conventionnelles peuvent ne pas fonctionner efficacement.
Dans l'extrait de code donné, le développeur tente de vérifier si l'objet myObj possède une propriété nommée « prop », mais le La variable myProp est mal définie avec une concaténation de chaînes. En conséquence, le code recherche une propriété 'myProp' inexistante.
Pour résoudre ce problème, plusieurs approches alternatives peuvent être utilisées :
La méthode hasOwnProperty() vérifie si la propriété spécifiée est directement définie dans l'objet (non héritée de son prototype).
<code class="js">var myProp = 'prop'; if(myObj.hasOwnProperty(myProp)){ alert("yes, i have that property"); }</code>
L'opérateur in vérifie si une propriété donnée existe dans un objet, qu'elle soit directement définie ou héritée.
<code class="js">var myProp = 'prop'; if(myProp in myObj){ alert("yes, i have that property"); }</code>
Si le nom de la propriété est connu avec certitude, il peut être vérifié directement sans avoir besoin d'une variable.
<code class="js">if('prop' in myObj){ alert("yes, i have that property"); }</code>
Remarque : Le hasOwnProperty () ignore les propriétés héritées, tandis que l'opérateur in les inclut. Par conséquent, le choix de l'approche dépend de la pertinence des propriétés héritées pour le contrôle effectué.
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!