Articles

JavaScript: Hva Er Objekt.opprett ()?

Andre smarte bruksområder Av Objekt.opprett ()

Objekt.create () kan ta et nytt argument

Objekt.create () kan brukes til a gjore bruk av Noen Av JavaScript ‘ s mange quirks. For det første kan det ta et annet argument som et objekt som har egenskaper som du vil ha med i det nylig returnerte objektet. Ikke bare det, men du kan faktisk passere inn som det første argumentet, og sier i hovedsak at det ikke skal være noen prototype på det returnerte objektet. Dette kan virke relativt ubrukelig, og er de fleste brukssaker det sannsynligvis er, men hva om du ville ha et objekt som ikke hadde noen prototype? For eksempel, si at du trenger et statisk objekt hvis egenskaper aldri skal endres, av deg eller noen andre? Objektlitteraler, opprettet ved hjelp av basic {}, kommer med en rekke innebygde egenskaper-inkludert de som gjør dem konfigurerbare; mens objekter opprettet med Objekt.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.opprett, vi kan definere nøyaktig hvilke egenskaper som eksisterer, inkludert prototypen

så nå, hvis vi ønsket, kan vi lage et objekt som ikke har noen forbindelse til Objektet.prototype.

siden vårt nye objekt ikke har noen forbindelse til prototypen, har det heller ikke enumerable, skrivbar eller konfigurerbar egenskaper. Det betyr at vi kan legge til dette objektet så mye vi vil, men vi kan ikke endre eller fjerne noe.

selv om vi bare tilordnet myProp, forblir den på 42.
vi får til og med tilbake»false»når du bruker sletteordet

i de fleste tilfeller er dette ikke det du vil ha. Men det er sikkert noen kantsaker der et statisk, uendret objekt er akkurat det du trenger! Hvis du jobber på et lag og har et objekt i koden din som definitivt aldri trenger å ha egenskapene fjernet/endret — Objekt.create () kan være akkurat det du leter etter.

Så Objekt.create () er super nyttig når det gjelder klassisk arv, men det gir også programmereren total kontroll over objektet som blir gjort-noe som kan være ganske fint.