Get to know MDN better
Esta página foi traduzida do inglês pela comunidade. Saiba mais e junte-se à comunidade MDN Web Docs.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since março de 2022.
O método estático Object.hasOwn() retorna true se o objeto específicado tem a propriedade indicada como sua propriedade own. Se a propriedade é herdada, ou não existe, o método retorna false.
Nota: Object.hasOwn() Tem a intenção de substituir Object.hasOwnProperty().
A instância do objeto javascript para o teste.
propO nome String ou Symbol da propriedade para teste.
true se o objeto especificado definiu diretamente a propriedade especificada. Por outro lado false.
O método Object.hasOwn() retorna true se a propriedade especificada é uma propriedade direta do objeto - mesmo se o valor da propriedade é null ou undefined.
O método retorna false se a propriedade é herdada, ou não foi declarada. Diferente do operador in, este método não verifica pela propriedade específica na cadeia do objeto.
Ele é mais recomendado do que Object.hasOwnProperty() porque ele funciona para objetos criados utilizando Object.create(null) e com objetos que sobescreveram o método herdado hasOwnProperty(). É possível contornar esse problema chamando o Object.prototype.hasOwnProperty() em um objeto externo, Object.hasOwn() é mais intuítivo.
O seguinte código mostra como determinar se o seguinte objeto example contém a propriedade prop.
O seguinte exemplo diferencia entre propriedade direta e proprietade errada através do prototype chain:
Para itererar sobre inúmeras propriedades de um objeto, você deve usar:
Mas se você precisa utilizar for...in, você pode utilziar Object.hasOwn() para pular as propriedades herdadas.
Os elementos de um Array são definidos como propriedades diretas, você pode utilizar o método hasOwn() para verificar se existe um index específico:
Essa seção demonstra hasOwn() é imune aos problemas que afetam hasOwnProperty. Primeiramente, ele pode ser uasdos em objetos que foram reimplementados hasOwnProperty():
Ele pode ser usado para testar objetos criados utilizando Object.create(null). Esses não são herdados de Object.prototype, e assim o hasOwnProperty() é inacessível
| ECMAScript® 2027 Language Specification # sec-object.hasown |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 12 de out. de 2025 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.