Maison >interface Web >js tutoriel >Comment puis-je parcourir en toute sécurité les propriétés d'un objet en JavaScript ?

Comment puis-je parcourir en toute sécurité les propriétés d'un objet en JavaScript ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-03 05:58:461000parcourir

How Can I Safely Iterate Through Object Properties in JavaScript?

Inspection des propriétés d'un objet : itération dans les propriétés

Dans l'extrait de code donné, une boucle for-in parcourt les propriétés de l'objet obj. Le nom de chaque propriété est attribué à la variable propt et sa valeur est accessible sous la forme obj[propt].

Cependant, un détail crucial à noter est que propt n'est pas une méthode ou une propriété intégrée des objets. Au lieu de cela, il s'agit simplement d'une variable qui prend le nom de chaque propriété lors de l'itération de la boucle.

L'importance de la vérification hasOwnProperty

Itérer sur les propriétés d'un objet à l'aide de boucles for-in nécessite une sécurité supplémentaire check : Object.prototype.hasOwnProperty.call(obj, prop).

Cette vérification est nécessaire car les objets en JavaScript héritent propriétés de leur prototype de classe de base. Par conséquent, un objet peut posséder des propriétés qu'il ne définit pas explicitement, mais qui sont héritées de la classe de base.

Pour éviter d'inclure des propriétés héritées dans la boucle, la vérification hasOwnProperty détermine si une propriété particulière appartient spécifiquement à la classe de base. objet étant itéré et non vers le prototype hérité.

Syntaxe hasOwnProperty alternative

Au lieu d'utiliser Object.prototype.hasOwnProperty.call(obj, prop), il est également possible d'invoquer hasOwnProperty directement sur l'objet lui-même :

if (obj.hasOwnProperty(prop)) {
    // Do stuff
}

Cependant, cette approche peut conduire à des erreurs si l'objet lui-même possède une propriété nommée hasOwnProperty. Pour éviter cela, il est recommandé d'utiliser la syntaxe Object.prototype.hasOwnProperty.

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