Articles

JavaScript: Wat is Object.create()?

andere handige toepassingen van Object.create ()

Object.create () kan een tweede argument

Object nemen.create() kan worden gebruikt om gebruik te maken van een aantal van JavaScript ‘ s vele eigenaardigheden. Ten eerste kan het een tweede argument nemen als een object dat eigenschappen heeft die u wilt opnemen in het nieuw geretourneerde object. Niet alleen dat, maar je kunt eigenlijk doorgaan als het eerste argument, in wezen zeggen dat er geen prototype moet zijn op het geretourneerde object. Dit lijkt misschien relatief nutteloos, en is de meeste use cases is het waarschijnlijk, maar wat als je wilde een object dat geen prototype had? Stel bijvoorbeeld dat je een statisch object nodig hebt waarvan de eigenschappen nooit gewijzigd mogen worden, door jou of iemand anders? Object literals, gemaakt met behulp van de basic {}, komen met een hoop ingebouwde eigenschappen — inclusief degenen die ze configureerbaar te maken; terwijl objecten gemaakt met 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.create, kunnen we precies definiëren welke eigenschappen Er bestaan, inclusief het prototype

dus nu, als we willen, kunnen we een object maken dat geen verbinding heeft met het Object.prototype.

omdat ons nieuwe object geen verbinding heeft met het prototype, heeft het ook geen opsommbare, beschrijfbare of configureerbare eigenschappen. Wat betekent dat we zoveel aan dit object kunnen toevoegen als we willen, maar we kunnen niets veranderen of verwijderen.

ook al hebben we myProp net opnieuw toegewezen, het blijft op 42.

We krijgen zelfs terug “false” bij het gebruik van het trefwoord verwijderen

In de meeste gevallen is dit niet wat je wilt. Maar er zijn zeker een paar edge cases waar een statisch, onveranderlijk object precies is wat je nodig hebt! Als je aan een team werkt en een object in je code hebt dat absoluut nooit zijn eigenschappen hoeft te laten verwijderen/veranderen — Object.create () kan precies zijn wat je zoekt.

So Object.create () is super handig als het gaat om klassieke overerving, maar het geeft de programmeur ook totale controle over het object dat wordt gemaakt — wat best leuk kan zijn.