Visão geral
O método HASOWNPROPERTY () é usado para determinar se um objeto contém uma propriedade especificada.
gramática
Obj.HasownProperty (Prop)
parâmetro
• Prop
• o nome do atributo a ser detectado.
descrever
Todos os objetos que herdam objeto.Prototype serão herdados da cadeia de protótipos para o método HistownProperty. Este método pode ser usado para detectar se um objeto contém uma propriedade específica. Ao contrário do operador no IN, esse método ignorará as propriedades herdadas da cadeia de protótipo.
Exemplo
Exemplo 1: use o método HasownProperty 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:
A cópia do código é a seguinte:
o = new Object (); o.prop = 'existe'; função changeo () {
O.NewProp = O.Prop;
excluir o.prop;} o.HasownProperty ('Prop');
// retorna verdadeiro
changeo ();
O.HasownProperty ('Prop');
// retorna false
Exemplo 2: A diferença entre seus próprios atributos e atributos herdados
O exemplo a seguir demonstra a diferença entre o método HasownProperty trata suas próprias propriedades e propriedades herdadas:
A cópia do código é a seguinte:
o = new Object (); O.Prop = 'Existe'; O.HasownProperty ('Prop');
// retorna verdadeiro
O.HasownProperty ('ToString');
// retorna false
O.HasownProperty ('HasownProperty');
// retorna false
Exemplo 3: iterar através de todas as propriedades de um objeto
O exemplo a seguir demonstra como ignorar as propriedades herdadas ao atravessar todas as propriedades de um objeto. Observe que o loop for..in apenas atravessará propriedades enumeráveis, que geralmente é o que queremos. Ele também pode atingir requisitos semelhantes diretamente usando o método Object.TetownPropertyNames ().
A cópia do código é a seguinte:
var Buz = {
nevoeiro: 'pilha'};
para (Var Nome em Buz) {
if (Buz.HasownProperty (nome)) {
alerta ("Este é o nevoeiro (" + nome + ") com certeza. Valor:" + Buz [nome]);
}
outro {
alerta (nome);
// ToString ou outra coisa
}}
Exemplo 4: O método HasOwnProperty pode ser bloqueado
Se um objeto tiver seu próprio método HASOWNPROPERTY, o método de mesmo nome na cadeia de protótipo será sombreado:
A cópia do código é a seguinte:
var foo = {
HASOWNPROPERTY: function () {
retornar falso;
},
bar: 'aqui seja dragons'}; foo.HasownProperty ('bar');
// sempre retorna falsa
// Se você estiver preocupado com isso, pode usar diretamente o método real HASOWNPROPERTY na cadeia de protótipos
({}). HasOwnProperty.Call (Foo, 'bar');
// verdadeiro
Object.prototype.HasownProperty.Call (Foo, 'bar');
// verdadeiro
O exposto acima é todo o conteúdo descrito neste artigo, espero que você goste.