Articles

JavaScript : Qu’est-ce qu’un objet.créer() ?

Autres utilisations astucieuses de l’objet.il est possible de créer un objet de type

Objet.create() peut prendre un deuxième argument

Objet.create() peut être utilisé pour utiliser certaines des nombreuses bizarreries de JavaScript. Tout d’abord, il peut prendre un deuxième argument en tant qu’objet ayant des propriétés que vous souhaitez inclure dans l’objet nouvellement renvoyé. Non seulement cela, mais vous pouvez réellement passer comme premier argument, en disant essentiellement qu’il ne doit pas y avoir de prototype sur l’objet retourné. Cela peut sembler relativement inutile, et la plupart des cas d’utilisation l’sont probablement, mais que se passe-t-il si vous vouliez un objet qui n’avait pas de prototype? Par exemple, disons que vous avez besoin d’un objet statique dont les propriétés ne devraient jamais être modifiées, par vous ou quelqu’un d’autre? Les littéraux d’objets, créés à l’aide du {} de base, sont livrés avec une multitude de propriétés intégrées – y compris celles qui les rendent configurables; tandis que les objets créés avec Object.create() will only have properties that you explicitly assign.

The regular instantiation of a JS object has all kinds of properties built-in, inherited from the Object.prototype

With Object.créer, nous pouvons définir exactement quelles propriétés existent, y compris le prototype

Alors maintenant, si nous le voulions, nous pouvons créer un objet qui n’a aucun lien avec l’Objet.prototype.

Cependant, comme notre nouvel objet n’a aucune connexion avec le prototype, il n’a pas non plus de propriétés énumérables, inscriptibles ou configurables. Ce qui signifie que nous pouvons ajouter à cet objet autant que nous le voulons, mais nous ne pouvons rien changer ou supprimer.

Même si nous venons de réaffecter myProp, il reste à 42.

Nous obtenons même « false » lorsque vous utilisez le mot clé delete

Dans la plupart des cas, ce n’est pas ce que vous voudriez. Mais il y a certainement quelques cas de bord où un objet statique et immuable est exactement ce dont vous avez besoin! Si vous travaillez en équipe et que vous avez un objet dans votre code qui n’a certainement jamais besoin d’avoir ses propriétés supprimées / modifiées — Object.create() peut être exactement ce que vous cherchez.

Objet So.create() est super utile en matière d’héritage classique, mais il donne également au programmeur un contrôle total sur l’objet en cours de création — ce qui peut être assez agréable.