Object.hasOwn()

Vérifie si un objet a sa propre propriété portant le nom donné.

Renvoie
true ou false.
Modifie l’original
Non
Sur cette page

Exemple

#
JavaScript
const profile = { name: 'Emma', bio: undefined }

console.log(Object.hasOwn(profile, 'bio'))
console.log(Object.hasOwn(profile, 'toString'))
console.log('toString' in profile)
Console
true
false
true

Définition et utilisation

#

La méthode Object.hasOwn(obj, clé) renvoie true si l’objet a une propriété de ce nom directement sur lui-même, et non héritée du prototype. C’est un équivalent plus moderne et plus sûr de obj.hasOwnProperty(clé).

Elle diffère de l’opérateur in, qui vérifie aussi les propriétés héritées. Par exemple, "toString" in {} renvoie true, alors que Object.hasOwn({}, "toString") renvoie false.

Elle fonctionne aussi sur des objets sans prototype (créés avec Object.create(null)), sur lesquels la méthode hasOwnProperty n’existe même pas.

Syntaxe

#
Syntaxe
Object.hasOwn(obj, prop)

Paramètres

#
  • obj

    objet

    L’objet vérifié.
  • prop

    chaîne ou symbole

    Le nom de la propriété.

Compatibilité des navigateurs

#

Largement disponible

Fonctionne dans tous les navigateurs modernes, y compris sur mobile. Vous pouvez l’utiliser sans crainte.

  • Chrome
  • Edge
  • Firefox
  • Safari

Bonnes pratiques

#
  • Vérifier avec if (obj.champ) ne permet pas de distinguer un champ absent d’une valeur 0, "" ou undefined. Object.hasOwn() le permet.
  • Dans du code neuf, remplacez hasOwnProperty par la méthode Object.hasOwn().

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.