Get to know MDN better
Esta página ha sido traducida del inglés por la comunidad. Aprende más y únete a la comunidad de MDN Web Docs.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since marzo de 2022.
El método estático Object.hasOwn() devuelve true si el objeto especificado tiene la propiedad indicada como propiedad propia. Si la propiedad es heredada, o no existe, el método devuelve false.
Nota: Object.hasOwn() está pensada como un reemplazo de Object.prototype.hasOwnProperty().
La instancia del objeto JavaScript a probar.
propEl nombre del String ó Symbol de la propiedad a probar.
true si el objeto tiene definido directamente la propiedad especificada. De lo contrario false
El método Object.hasOwn() devuelve true si la propiedad especificada es una propiedad directa del objeto — incluso si el valor de la propiedad es null o undefined. El método devuelve false si la propiedad es heredada, o no ha sido declarado en absoluto. A diferencia del operador in, este método no comprueba la propiedad especificada en la cadena de prototipos del objeto.
Se recomienda sobre Object.prototype.hasOwnProperty() porque funciona para objetos creados usando Object.create(null) y con objetos que anulan el método hasOwnProperty(). Si bien es posible solucionar estos problemas llamando a Object.prototype.hasOwnProperty() en un objeto externo, Object.hasOwn() es mas intuitivo.
El siguiente código muestra como determinar si el objeto example contiene una propiedad llamada prop.
El siguiente ejemplo diferencía entre propiedades directas y propiedades heredadas mediante la cadena de prototipos:
Para iterar sobre las propiedades enumerables de un objeto, debe usar:
Pero si necesita usar for...in, se puede usar Object.hasOwn() para omitir las propiedades heredadas:
Los elementos de un Array son definidos como propiedades directas, asi que se puede usar el método hasOwn() para comprobar si existe un índice en particular:
Esta sección demuestra que hasOwn() es inmune a los problemas que afectan hasOwnProperty. En primer lugar, puede usarse con objetos que han reimplementado hasOwnProperty():
También se puede usar para probar objetos creados usando Object.create(null). Estos no heredan de Object.prototype, por lo que hasOwnProperty() es inaccesible.
| ECMAScript® 2027 Language Specification # sec-object.hasown |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 21 jul 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.