Aperçu
La méthode HasownProperty () est utilisée pour déterminer si un objet contient une propriété spécifiée.
grammaire
Obj.HasownProperty (PROP)
paramètre
•soutenir
• Le nom de l'attribut à détecter.
décrire
Tous les objets qui héritent de l'objet.prototype seront hérités de la chaîne prototype à la méthode HasownProperty. Cette méthode peut être utilisée pour détecter si un objet contient une propriété spécifique. Contrairement à l'opérateur In, cette méthode ignorera les propriétés héritées de la chaîne prototype.
Exemple
Exemple 1: Utilisez la méthode HasownProperty pour déterminer si un objet contient une propriété spécifique
L'exemple suivant détecte si l'objet O contient son propre accessoire d'attribut:
La copie de code est la suivante:
o = nouvel objet (); o.prop = 'exists'; fonction changeo () {
o.newprop = o.prop;
supprimer o.prop;} o.hasownproperty ('prop');
// retourne vrai
Changeo ();
O.HasownProperty ('Prop');
// retourne false
Exemple 2: La différence entre vos propres attributs et les attributs hérités
L'exemple suivant démontre la différence entre la méthode HasownProperty traite ses propres propriétés et ses propriétés héréditaires:
La copie de code est la suivante:
o = new object (); o.prop = 'exists'; o.hasownproperty ('prop');
// retourne vrai
O.HasownProperty («tostring»);
// retourne false
O.HasownProperty («Hasownproperty»);
// retourne false
Exemple 3: itérer à travers toutes les propriétés d'un objet
L'exemple suivant montre comment ignorer les propriétés héréditaires lors de la traversée de toutes les propriétés d'un objet. Notez que la boucle for..in ne fera que traverser les propriétés énumérables, ce qui est généralement ce que nous voulons. Il peut également réaliser des exigences similaires directement à l'aide de la méthode object.getownpropertyNames ().
La copie de code est la suivante:
var buz = {
Fog: 'pile'};
pour (var nom dans buz) {
if (buz.hasownproperty (nom)) {
alert ("Ceci est brouillard (" + name + ") à coup sûr. Valeur:" + buz [name]);
}
autre {
alerte (nom);
// tostring ou autre chose
}}
Exemple 4: La méthode HasownProperty peut être bloquée
Si un objet a sa propre méthode HasownProperty, la méthode du même nom sur la chaîne prototype sera ombragée:
La copie de code est la suivante:
var foo = {
HasownProperty: function () {
retourne false;
},
Bar: 'Ici Be Dragons'}; foo.hasownproperty ('bar');
// retourne toujours faux
// Si vous êtes inquiet à ce sujet, vous pouvez directement utiliser la méthode réelle HasownProperty sur la chaîne prototype
({}). HasownProperty.Call (foo, 'bar');
// vrai
Object.prototype.hasownproperty.call (foo, 'bar');
// vrai
Ce qui précède est tout le contenu décrit dans cet article, j'espère que vous l'aimez.