0. Prerrequisito
Las propiedades de los objetos JavaScript se dividen en dos formas de existencia. Uno es la instancia de existencia y la otra es la existencia en el objeto prototipo.
Según lo anterior, habrá 4 situaciones al detectar atributos
Ni en instancias ni en objetos prototipo
En el caso, no existe en el objeto prototipo
En el caso, existe en el objeto prototipo
existe en ambos casos y en objetos prototipo
1.HasownPrototype ()
ASOWNProTotype () acepta un nombre de propiedad en formato de cadena y devuelve verdadero si la instancia en sí tiene esta propiedad (Caso 2/Caso 4). De lo contrario, devuelve False (Caso 1/Caso 3).
La copia del código es la siguiente:
Functino Person () {}
Persona.prototype.name = 'Apple';
VAR Person1 = nueva persona ();
var persona2 = nueva persona ();
persona1.name = 'Banana';
console.log (persona1.hasownprototype (nombre)); //verdadero
console.log (persona2.hasownprototype (nombre)); //FALSO
2.in operador
El operador en el operador devolverá verdadero independientemente de si el atributo existe en la instancia misma o en el objeto prototipo (caso 2/caso 3/caso 4); De lo contrario, devolverá False (caso 1).
La copia del código es la siguiente:
console.log ('nombre' en persona1); //verdadero
console.log ('nombre' en persona2); //verdadero
3. Detectar las propiedades del prototipo
La combinación del operador en el operador y haownproperty () puede personalizar la función para detectar si el atributo dado existe en el prototipo.
La copia del código es la siguiente:
función HasPrototyPeProperty (objeto, nombre) {
return! object.hasownprototype (nombre) && (nombre en objeto);
}
console.log (HasPrototyPeProperty (persona1, 'nombre')); // falso
console.log (HasPrototyPeProperty (persona2, 'nombre')); // Verdadero
El atributo dado existe en el prototipo, devuelve verdadero (caso 3). De lo contrario, falso (caso 1/caso 2/caso 4).
Lo anterior es todo el contenido de este artículo. Espero que te guste