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.
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é.
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!