0. Pré -requisito
As propriedades dos objetos JavaScript são divididas em duas formas de existência. Um é a instância da existência e o outro é a existência no objeto de protótipo.
De acordo com o exposto, haverá 4 situações ao detectar atributos
Nem em casos nem em objetos de protótipo
No caso, ele não existe no objeto de protótipo
No caso, ele existe no objeto de protótipo
existe em ambos os casos e em objetos de protótipo
1.HasownPrototype ()
HasOwnProType () aceita um nome de propriedade no formato da String e retorna true se a própria instância tiver essa propriedade (caso 2/caso 4). Caso contrário, ele retorna false (caso 1/caso 3).
A cópia do código é a seguinte:
functino pessoa () {}
Pessoa.prototype.name = 'Apple';
Var Person1 = New Pessoa ();
var pessoa2 = new Person ();
pessoa1.name = 'banana';
console.log (Person1.HasownPrototype (nome)); //verdadeiro
console.log (Person2.HasownPrototype (nome)); //falso
2.Em operador
O operador no IN retornará true, independentemente de o atributo existir na própria instância ou no objeto de protótipo (caso 2/caso 3/caso 4); Caso contrário, ele retornará falso (caso 1).
A cópia do código é a seguinte:
console.log ('nome' em pessoa1); //verdadeiro
console.log ('nome' em pessoa2); //verdadeiro
3. Detecte as propriedades do protótipo
Combinar o operador e o hasOwnProperty () pode personalizar a função para detectar se o atributo fornecido existe no protótipo.
A cópia do código é a seguinte:
função hasprototypeProperty (objeto, nome) {
return! Object.HasownPrototype (nome) && (nome no objeto);
}
console.log (hasprototypeProperty (Person1, 'nome')); // false
console.log (hasPrototypeProperty (Person2, 'nome')); // true
O atributo dado existe no protótipo, retorna true (caso 3). Caso contrário, Falso (Caso 1/Caso 2/Caso 4).
O acima é o conteúdo inteiro deste artigo. Espero que gostem