Ambas propiedades son proporcionadas por Object.Prototype: Object.prototype.hasownproperty () y object.prototype.isPropertyOf ()
Primero explique el método y use de HasownProperty (). Explique el método ISPropertyOf () y use
Comprenda estos al menos debe comprender la cadena prototipo
1. Object.prototype.hasownproperty ()
Descripción general
El método de iSownProperty () se utiliza para determinar si un objeto contiene una propiedad especificada
gramática
obj.hasownproperty ("nombre de la propiedad"); // Si la instancia obj contiene las propiedades entre paréntesis, si es verdadero, de lo contrario es falso
describir
Todos los objetos que heredan objeto. Prototipo se heredará de la cadena prototipo al método de HaswnProperty. Este método detecta si un objeto contiene una propiedad específica. A diferencia de, este método ignorará las propiedades heredadas de la cadena prototipo.
Ejemplo
1. Use el método de iSownProperty () para determinar si un objeto contiene una propiedad específica
El siguiente ejemplo detecta si el objeto O contiene su propio accesorio de atributo:
var o =new Object();o.prop="exists";function change(){o.newprop=o.prop;delete o.prop;}o.hasOwnProperty("prop")//truechange()//Delete the prop property of o.hasOwnProperty("prop")//false//After deletion, use hasOwnProperty() to determine whether it exists, and the return no existe2. La diferencia entre sus propios atributos y atributos heredados
Las siguientes columnas demuestran la diferencia entre el método de HaswnProperty () trata sus propias propiedades y propiedades heredadas.
var o = nuevo objeto (); O.prop = "existe"; O.HasownProperty ("prop"); // Verdadero sus propios atributos O.HasownProperty ("ToString"); // Métodos falsos heredados del objeto Prototipo O.Hasow3. Después de modificar la cadena prototipo, el ejemplo puntual de HasownProperty () es
Las siguientes columnas demuestran la diferencia entre el método de HaswnProperty () en las propiedades de herencia después de modificar la cadena prototipo.
var o = {nombre: 'jim'}; function Person () {this.age = 19;} persona.prototype = o; // Modifique el prototipo de la persona para apuntar a P.hasownproperty ("nombre"); // falso no puede juzgar el atributo de nombre heredado P.Hasownproperty ("edad"); // true;4. Use aSownProperty () para atravesar las propiedades de un objeto en sí
Las siguientes columnas demuestran cómo ignorar los atributos hereditarios mientras atraviesa un objeto y obtiene sus propios atributos.
Nota ・ Forin atravesará las propiedades enumerables en la herencia de los objetos
var o = {género: 'ma'} function person () {this.name = "zhang san"; this.age = 19;} persona.prototype = o; var p = new person (); for (var k en p) {if (p.hasownproperty (k)) {console.log ("propiedades originales:"+k);// name, edad} else} Propiedades en otro lugar: "+k); // género}}5. El método de la property de la cantidad se puede sobrescribir
Si un objeto tiene su propio método de iSownProperty (), el método de iSownProperty () en la cadena prototipo se sobrescribirá
var o = {género: 'masculino', durawnproperty: function () {return false;}} o.hasownproperty ("género"); // return false si no escribe nada // método de solución, use llamada Método ({}). ASOWNProperty.call (o, 'género'); // trueObject.prototype.hasownproperty.call (o, 'género'); // true2. Object.prototype.IsprototypeOf ()
Descripción general
El método isPrototypeOf () prueba si existe un objeto en la cadena prototipo de otro objeto
gramática
// es Object1 el prototipo de Object2? Es decir, Object2 es el prototipo de Object1. Si es así, devuelve verdadero, de lo contrario, falseObject1.IsprototypeOf (Object2);
describir
El método ISProTotypeOf () le permite verificar si existe un objeto en la cadena prototipo de otro objeto.
Ejemplo
1. Use isPrototypeOf () para verificar si existe un objeto en el prototipo de otro objeto
var o = {}; function Person () {}; var p1 = new Person (); // heredado del prototipo original, pero ahora es imposible acceder a Person.prototype = o; var p2 = new Person (); // Heredado de Oconsole.log (O.IsprototypeOf (P1)); // falso es un prototipo de P1 de P1 de P1 console.log (O.IsprototypeOf (P2)); // Verdadero es un prototipo de P22. Use isPropertyOf () para verificar si existe un objeto en la cadena prototipo de otro objeto
var o = {}; function Person () {}; var p1 = new Person (); // heredado del prototipo original, pero ahora es imposible acceder a Person.prototype = o; var p2 = new Person (); // Heredado de Oconsole.log (O.IsprototypeOf (P1)); // Falso O es el prototipo de P1 de P1 console.log (O.Isprototipof (p2)); // true O es el prototipo de p2 console.log (objeto.prototype.IsprototypeOf (p1)); // trueConsole.log (objeto.prototype.isprototypeOf (P2)); // trueLa estructura de la cadena prototipo de P1 es p1 => la persona original.prototype => objeto.prototype => nulo
La estructura de la cadena prototipo de P2 es p2 => o => objeto.prototype => nulo
Tanto P1 como P2 tienen objeto. Prototipo para que ambos estén en la cadena prototipo de objeto. Prototipo
3. Resumen
1.HasownProperty: se usa para determinar si un objeto tiene una propiedad u objeto que le dio el nombre. Sin embargo, debe tenerse en cuenta que este método no puede verificar si la cadena prototipo del objeto tiene esta propiedad, que debe ser un miembro del objeto en sí.
2. ISPrototypeOF se usa para determinar si el objeto para verificar si su cadena prototipo existe en la instancia de objeto especificado. Si es así, devuelve verdadero, de lo contrario devuelve falso.
Lo anterior es una explicación detallada de los ejemplos de atributos de ISOWNProperty () e isProTotypeOf () en JS presentados por el editor. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!