From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- .../object/hasownproperty/index.html | 193 +++++++++++++++++++++ 1 file changed, 193 insertions(+) create mode 100644 files/pt-br/web/javascript/reference/global_objects/object/hasownproperty/index.html (limited to 'files/pt-br/web/javascript/reference/global_objects/object/hasownproperty') diff --git a/files/pt-br/web/javascript/reference/global_objects/object/hasownproperty/index.html b/files/pt-br/web/javascript/reference/global_objects/object/hasownproperty/index.html new file mode 100644 index 0000000000..aef0554b86 --- /dev/null +++ b/files/pt-br/web/javascript/reference/global_objects/object/hasownproperty/index.html @@ -0,0 +1,193 @@ +--- +title: Object.prototype.hasOwnProperty() +slug: Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty +translation_of: Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty +--- +
{{JSRef("Global_Objects", "Object")}}
+ +

Resumo

+ +

O método hasOwnProperty() retorna um booleano indicando se o objeto possui a propriedade especificada como uma propriedade definida no próprio objeto em questão (ao contrário de uma propriedade herdada).

+ +

Sintaxe

+ +
obj.hasOwnProperty(prop)
+ +

Parâmetros

+ +
+
prop
+
Uma {{jsxref("String")}} ou symbol indicando o nome da propriedade a ser verificada.
+
+ +

Valor de Retorno

+ +

Um {{jsxref("Boolean", "booleano")}} indicando se o objeto possui ou não a propriedade especificada como uma propriedade do próprio objeto e que a propriedade não é uma propriedade herdada.

+ +

Descrição

+ +

Todo objeto descendente de Object herda o método hasOwnProperty. Este método pode ser usado para determinar se um objeto possui a propriedade especificada como propriedade direta do objeto.

+ +

Diferentemente do operador {{jsxref("Operators/in", "in")}}, este método não checa a cadeia prototípica do objeto.

+ +

Nota

+ +

o método hasOwnProperty retorna true mesmo se o valor da propridade em questão é null ou undefined

+ +
o = new Object();
+o.propUm = null;
+o.hasOwnProperty('propUm'); // retorna true
+o.propDois = undefined;
+o.hasOwnProperty('propDois'); // retorna true
+
+ +

Exemplos

+ +

Usando hasOwnProperty para testar a existência de uma propriedade

+ +

O seguinte exemplo determina se o objeto o possui uma propriedade com o nome prop:

+ +
o = new Object();
+o.hasOwnProperty('prop'); // retorna false
+o.prop = 'existe';
+o.hasOwnProperty('prop'); // retorna true
+ +

Propriedades Diretas vs Propriedades Herdadas

+ +

O seguinte exemplo diferencia entre propriedade diretas e propriedade herdadas da cadeia prototípica:

+ +
o = new Object();
+o.prop = 'existe';
+o.hasOwnProperty('prop');             // Retorna true
+o.hasOwnProperty('toString');         // Retorna false
+o.hasOwnProperty('hasOwnProperty');   // Retorna false
+ +

Percorrer através das propriedades de um objeto

+ +

O seguinte exemplo mostra como percorrer as propriedade de um objeto sem executar as propriedade herdadas.

+ +

Vale observar que o loop {{jsxref("Statements/for...in", "for...in")}} percorre somente itens enumeráveis. Entretanto, o método hasOwnProperty também funciona com propriedades não enumeráveis.

+ +
var buz = {
+    fog: 'stack'
+};
+
+for (var nome in buz) {
+    if (buz.hasOwnProperty(nome)) {
+        alert("this is fog (" + nome + ") for sure. Value: " + buz[nome]);
+    }
+    else {
+        alert(nome); // toString ou qualquer outra coisa
+    }
+}
+ +

Exemplo: hasOwnProperty como propriedade

+ +

JavaScript não protege o nome hasOwnProperty, assim, se existir a possibilidade do objeto possuir uma propriedade com esse nome, é necessário usar externamente hasOwnProperty para se ter o resultado correto:

+ +
var foo = {
+    hasOwnProperty: function() {
+        return false;
+    },
+    bar: 'Here be dragons'
+};
+
+foo.hasOwnProperty('bar'); // Sempre retorna false
+
+// Usando a propriedade hasOwnProperty de outro objeto e definindo 'this' como foo
+({}).hasOwnProperty.call(foo, 'bar'); // true
+
+// Também é possível usar hasOwnProperty do objeto
+Object.prototype.hasOwnProperty.call(foo, 'bar'); // true
+
+ +

Observe que neste ultimo caso nenhum novo objeto é criado.

+ +

Especificações

+ + + + + + + + + + + + + + + + + + + + + + + + +
EspecificaçãoStatusComentário
ECMAScript 3rd Edition. Implemented in JavaScript 1.5StandardDefinição inicial.
{{SpecName('ES5.1', '#sec-15.2.4.5', 'Object.prototype.hasOwnProperty')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-object.prototype.hasownproperty', 'Object.prototype.hasOwnProperty')}}{{Spec2('ES6')}}
+ +

Compatibilidade nos navegadores

+ +

{{ CompatibilityTable() }}

+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari
Basic support{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}
+
+ +

Veja Também

+ + -- cgit v1.2.3-54-g00ecf