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 !== undefined odróżnia właściwość o wartości undefined od 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 (?.)