Object.hasOwn()
Object.hasOwn(obj, prop)
Zwraca true, jeśli obiekt ma właściwość bezpośrednio (nie odziedziczoną po prototypie). Zastępuje starsze obj.hasOwnProperty(prop).
Parametry
- obj – sprawdzany obiekt.
- prop – nazwa właściwości.
Wartość zwracana
true albo false.
Przykłady
const settings = { count: 0, lang: undefined };
console.log(Object.hasOwn(settings, 'count'), Object.hasOwn(settings, 'lang'));
console.log(Object.hasOwn(settings, 'toString'), 'toString' in settings);
const noPrototype = Object.create(null);
noPrototype.a = 1;
console.log(Object.hasOwn(noPrototype, 'a'));
Wynik:
true true false true true
Na co uważać
- Inaczej niż
obj.prop !== undefinedodróżnia właściwość o wartościundefinedod brakującej. - Działa także dla obiektów bez prototypu, w których
hasOwnProperty()nie istnieje.
Obsługa w przeglądarkach
Baseline – szeroko dostępne: we wszystkich popularnych przeglądarkach od marca 2022, za szeroko dostępne uznawane od września 2024. Od wersji: Chrome 93, Firefox 92, Safari 15.4; Node.js 16.9.0. Stan: październik 2026 (MDN browser-compat-data).
Zobacz też:
Object.keys()
Object.create()
Opcjonalne łączenie (?.)