Ambas as propriedades são fornecidas pelo object.prototype: object.prototype.HasownProperty () e Object.prototype.isPropertyof ()
Primeiro, explique o método e o uso do HASOWNPROPERTY (). Explique o método isPropertyOf () e use
Entenda isso pelo menos você deve entender a cadeia de protótipo
1. Object.prototype.HasownProperty ()
Visão geral
O método HASOWNPROPERTY () é usado para determinar se um objeto contém uma propriedade especificada
gramática
obj.HasownProperty ("Nome da propriedade"); // se a instância obj contém as propriedades entre parênteses, se for verdadeira, caso contrário, é falso
descrever
Todos os objetos que herdam objeto.Prototype serão herdados da cadeia de protótipos para o método HistownProperty. Este método detecta se um objeto contém uma propriedade específica. Ao contrário, esse método ignorará as propriedades herdadas da cadeia de protótipo.
Exemplo
1. Use o método HASOWNPOPERTY () para determinar se um objeto contém uma propriedade específica
O exemplo a seguir detecta se o objeto o contém seu próprio suporte de atributo:
var o = new Object (); o.prop = "existe"; função alteração () {o.newProp = o.prop; exclua o.prop;} o.HasownProperty ("prop") // truechange () // excluir a propriedade do suporte de o.HasownProperty ("prop") // false // delicios2. A diferença entre seus próprios atributos e atributos herdados
As colunas a seguir demonstram a diferença entre o método HasOwnProperty () trata suas próprias propriedades e propriedades herdadas.
var o = new Object (); o.prop = "existe"; O.HasownProperty ("prop"); // Verdadeiro seus próprios atributos O.HasownProperty ("ToString"); // Métodos falsos herdados do protótipo de objeto O.HasownProperty ("HasownProperty");3. Depois de modificar a cadeia do protótipo, o exemplo apontador de HasOwnProperty () é
As colunas a seguir demonstram a diferença entre o método HasOwnProperty () nas propriedades da herança após a modificação da cadeia de protótipo.
var o = {name: 'Jim'}; function PERS () {this.age = 19;} pessoa.prototype = O; // Modifique o protótipo da pessoa para apontar para P.HasownProperty ("nome"); // False não pode julgar o nome herdado atribuindo P.HasownProperty ("idade"); // True;4. Use HasOwnProperty () para atravessar as propriedades de um objeto
As colunas a seguir demonstram como ignorar os atributos herdados enquanto atravessam um objeto e obtêm seus próprios atributos.
NOTA ・ para a inimigo, as propriedades enumeráveis na herança do objeto
var o = {gênero: 'ma'} função pessoa () {this.name = "zhang san"; this.age = 19;} pessoa.prototype = o; var p = new Person (); para (var k em p) {if (p.HasownProperty (k)) {console.Log ("ORIGIN». Propriedades em outros lugares: "+k); // gênero}}5. O método HasownProperty pode ser substituído
Se um objeto tiver seu próprio método hrownProperty (), o método HASOWNPROPERTY () na cadeia de protótipos será substituído
var o = {gênero: 'masculino', hasOwnsProperty: function () {return false;}} o.HasownProperty ("gênero"); // retorna false se você não escrever nada // Método da solução, use o método de chamada ({}).2. Object.prototype.isprototypeof ()
Visão geral
isPrototypeOf () Método testa se existe um objeto na cadeia de protótipos de outro objeto
gramática
// é objeto1 O protótipo do objeto2? Ou seja, o objeto2 é o protótipo do objeto1. Se for, ele retorna true, caso contrário, falsebject1.isprototypeof (object2);
descrever
O método isprototypeOf () permite verificar se existe um objeto na cadeia de protótipo de outro objeto.
Exemplo
1. Use isProTypeOf () para verificar se existe um objeto no protótipo de outro objeto
var o = {}; função pessoa () {}; var p1 = new Person (); // herdado a partir do protótipo original, mas agora é impossível acessar a pessoa.prototype = O; var P2 = new Person (); // herdado é do protrot (o.isProTyPyof (P1); console.log (o.isprototypeof (p2)); // true é um protótipo de p22. Use isPropertyof () para verificar se existe um objeto na cadeia de protótipo de outro objeto
var o = {}; function PERS () {}; var p1 = new Person (); // herdado do protótipo original, mas agora é impossível acessar a pessoa.prototype = O; var P2 = new Person (); // herdado de Oconsole.Log (O.IsPrototyPyof (P1)); console.log (o.isprototypeof (p2)); // true o é o protótipo de p2 console.log (object.prototype.isprototypeof (p1)); // trueconsole.log (object.prototype.isprototypeof (P2);A estrutura da cadeia do protótipo de P1 é P1 => a pessoa original.prototype => object.prototype => null
A estrutura da cadeia do protótipo de P2 é P2 => O => Object.prototype => NULL
Tanto P1 quanto P2 têm objeto.Prototype para que ambos estejam na cadeia de protótipo de objeto.prototipo
3. Resumo
1.HasownProperty: é usado para determinar se um objeto possui uma propriedade ou objeto que você deu o nome. No entanto, deve -se notar que esse método não pode verificar se a cadeia de protótipo do objeto possui essa propriedade, que deve ser um membro do próprio objeto.
2. O ISPrototypeOF é usado para determinar se o objeto verificar se sua cadeia de protótipo existe na instância do objeto especificado. Se for, ele retorna verdadeiro, caso contrário, retorna falsa.
O exposto acima é uma explicação detalhada dos exemplos de atributos HasOwnProperty () e ISPrototypeof () no JS apresentado pelo editor. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!