Les deux propriétés sont fournies par objet.prototype: object.prototype.hasownproperty () et object.prototype.ispropertyof ()
Expliquez d'abord la méthode HasownProperty () et l'utilisation. Expliquez la méthode isPropertyOf () et utilisez
Comprenez-les au moins, vous devez comprendre la chaîne prototype
1. Object.prototype.hasownproperty ()
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 ("nom de propriété"); // si l'instance Obj contient les propriétés entre parenthèses, si c'est vrai, sinon c'est faux
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 détecte si un objet contient une propriété spécifique. Contrairement à IN, cette méthode ignorera les propriétés héritées de la chaîne prototype.
Exemple
1. Utiliser 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:
var o = nouvel objet (); o.prop = "exists"; function change () {o.newprop = o.prop; delete o.prop;} o.hasownproperty ("prop") // truechange () // supprimer la propriété de la propriété d'O.Hasownproperty ("prop") // false // après la délétion, il n'y a pas2. La différence entre vos propres attributs et les attributs héréditaires
Les colonnes suivantes démontrent la différence entre la méthode Hasownproperty () traite ses propres propriétés et ses propriétés héréditaires.
var o = nouvel objet (); o.prop = "exists"; o.hasownproperty ("prop"); // vrai ses propres attributs o.hasownproperty ("toString"); // faux méthodes héritées de l'objet prototype o.hasownproperty ("Hasownproperty"); // false méthodes inhérentes à l'objet Prototypey3. Après avoir modifié la chaîne prototype, l'exemple de pointage de HasownProperty () est
Les colonnes suivantes démontrent la différence entre la méthode HasownProperty () dans les propriétés d'héritage après avoir modifié la chaîne prototype.
var o = {name: 'jim'}; fonction personne () {this.age = 19;} personne.prototype = o; // modifier le prototype de la personne pour pointer du p.hasownproperty ("nom"); // false ne peut pas juger l'attribut de nom hérité p.hasownproperty ("age"); // true;4. Utiliser HasownProperty () pour traverser les propriétés d'un objet lui-même
Les colonnes suivantes montrent comment ignorer les attributs héréditaires tout en traversant un objet et obtenir ses propres attributs.
Remarque ・ Forin traversera les propriétés énumérables dans l'héritage des objets
var o = {Gender: 'ma'} function personne () {this.name = "zhang san"; this.age = 19;} personne.prototype = o; var p = new personne (); for (var k in p) {if (p.hasownproperty (k)) {console.log (" Propriétés ailleurs: "+ k); // Gender}}5. La méthode HasownProperty peut être écrasée
Si un objet a sa propre méthode HasownProperty (), la méthode HasownProperty () sur la chaîne prototype sera écrasée
var o = {Gender: 'mâle', HasownProperty: function () {return false;}} o.hasownproperty ("Gender"); // return false si vous n'écrivez rien // Méthode de solution, utilisez la méthode d'appel ({}). Hasownproperty.call (o, 'Gender'); // trueobject.pototype.hasownproperty.call (o, gander;2. object.prototype.isprototypeof ()
Aperçu
iSprototypeOf () Méthode teste si un objet existe sur la chaîne prototype d'un autre objet
grammaire
// Object1 est-il le prototype d'objet2? C'est-à-dire que l'objet2 est le prototype d'objet1. Si c'est le cas, il renvoie vrai, sinon falseObject1.isprototypeOf (object2);
décrire
La méthode isPrototypeOf () vous permet de vérifier si un objet existe sur la chaîne prototype d'un autre objet.
Exemple
1. Utilisez isprototypeof () pour vérifier si un objet existe sur le prototype d'un autre objet
var o = {}; fonction personne () {}; var p1 = new personne (); // hérité du prototype d'origine, mais il est maintenant impossible d'accéder à la personne.prototype = o; var p2 = new personne (); // hérité de Oconsole.log (O.isprototypeof (p1)); // false est un prototype de P1 console.log (o.isprototypeof (p2)); // true est o un prototype de p22. Utilisez isPropertyOf () pour vérifier si un objet existe sur la chaîne prototype d'un autre objet
var o = {}; fonction personne () {}; var p1 = new personne (); // hérité du prototype d'origine, mais maintenant il est impossible d'accéder à la personne.prototype = o; var p2 = new personne (); // hérité de Oconsole.log (O.isprototypeof (p1)); // False O est le prototype de P1 console.log (o.isprototypeof (p2)); // true o est le prototype de p2 console.log (object.prototype.isprototypeof (p1)); // trueconsole.log (object.prototype.isprototypeof (p2)); // true.prototype.isprototypeof (p2)); //La structure de la chaîne prototype de P1 est p1 => la personne d'origine.prototype => objet.prototype => null
La structure de la chaîne prototype de P2 est p2 => o => objet.prototype => null
P1 et P2 ont un objet.prototype afin qu'ils soient tous deux sur la chaîne de prototype d'objet.pototype
3. Résumé
1.HasownProperty: est utilisé pour déterminer si un objet a une propriété ou un objet que vous avez donné. Cependant, il convient de noter que cette méthode ne peut pas vérifier si la chaîne prototype de l'objet a cette propriété, qui doit être membre de l'objet lui-même.
2. ISPROTOTYPEOF est utilisé pour déterminer si l'objet pour vérifier si sa chaîne prototype existe dans l'instance d'objet spécifié. Si c'est le cas, il renvoie vrai, sinon il renvoie faux.
Ce qui précède est une explication détaillée des exemples d'attribut HasownProperty () et isPrototypeOf () dans JS présentés par l'éditeur. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!