Object. create()
Crée un nouvel objet avec le prototype donné.
- Renvoie
- Un nouvel objet.
- Modifie l’original
- Non
Exemple
#const hero = {
greet() {
return `Salut, je suis ${this.name}`
}
}
const lucas = Object.create(hero)
lucas.name = 'Lucas'
console.log(lucas.greet())
console.log(Object.keys(lucas))
console.log(Object.getPrototypeOf(lucas) === hero)Définition et utilisation
#La méthode Object.create(proto) crée un objet vide dont le prototype est l’objet donné. Le nouvel objet hérite de toutes ses propriétés et méthodes, même s’il ne les contient pas lui-même.
C’est le mécanisme d’héritage de base en JavaScript, sur lequel les classes elles-mêmes reposent. Dans le code de tous les jours, on utilise plus souvent la syntaxe class, mais Object.create() aide à comprendre comment fonctionne la chaîne de prototypes.
Appeler Object.create(null) crée un objet sans aucun prototype. Ce « dictionnaire pur » n’a pas de clés héritées comme toString, ce qui est parfois utile pour stocker des données quelconques.
Syntaxe
#Object.create(proto)
Object.create(proto, propertiesObject)Paramètres
#proto
objet ou null
Le prototype du nouvel objet.propertiesObject
optionnel
Des descripteurs de propriétés à définir immédiatement.
Plus d’exemples
#const dictionary = Object.create(null)
dictionary.toString = 'ce n’est qu’une clé'
console.log(dictionary.toString)
console.log('hasOwnProperty' in dictionary)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
#- Dans du code neuf, la syntaxe
classest généralement plus pratique pour l’héritage. - Pour des dictionnaires à clés quelconques,
Mapest souvent un meilleur choix.
Entrées associées
#- classDéfinit une classe, c’est-à-dire un modèle pour créer des objets avec les mêmes champs et méthodes.
- thisMot-clé qui désigne l’objet sur lequel une fonction a été appelée.
- Object.hasOwn()Vérifie si un objet a sa propre propriété portant le nom donné.
- MapUne collection de paires clé-valeur dans laquelle la clé peut être n’importe quelle valeur, et où l’ordre d’ajout est conservé.
Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.