Voici une réponse courte et précise:
En JavaScript, chaque objet possède un ensemble de paires clé-valeur intégrées contenant des méta-informations sur l'objet. Lorsque vous parcourez toutes les paires clé-valeur en utilisant la for...in
construction / boucle pour un objet, vous parcourez également ces paires clé-valeur de méta-informations (ce que vous ne voulez certainement pas).
En utilisant des hasOwnPropery(property)
filtres, ces boucles inutiles dans les méta-informations et vérifient directement que le paramètre property
est une propriété donnée par l'utilisateur dans l'objet ou non. Par filtrage , je veux dire, cela hasOwnProperty(property)
ne regarde pas si, property
existe dans la chaîne de prototypes d'Object, autrement dit les méta-informations.
Il renvoie un booléen true/false
basé sur cela.
Voici un exemple:
var fruitObject = {"name": "Apple", "shape": "round", "taste": "sweet"};
console.log(fruitObject.hasOwnProperty("name"));
console.log(Object.prototype.hasOwnProperty("toString");)
J'espère que c'est clair!