Articles

JavaScript: Hvad er objekt.Opret ()?

andre smarte anvendelser af objektet.Opret ()

objekt.Opret () kan tage et andet argument

objekt.Opret () kan bruges til at gøre brug af nogle af JavaScript mange særheder. For det første kan det tage et andet argument som et objekt, der har egenskaber, som du vil medtage i det nyligt returnerede objekt. Ikke kun det, men du kan faktisk passere ind som det første argument og i det væsentlige sige, at der ikke skal være nogen prototype på det returnerede objekt. Dette kan virke relativt ubrugeligt, og er de fleste brugssager det sandsynligvis er, men hvad nu hvis du ville have et objekt, der ikke havde nogen prototype? Har brug for et statisk objekt, hvis egenskaber aldrig skal ændres af dig eller nogen anden? Objektlitteraler, der er oprettet ved hjælp af basic {}, leveres med en række indbyggede egenskaber-inklusive dem, der gør dem konfigurerbare; mens objekter oprettet 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.Opret, vi kan definere nøjagtigt, hvilke egenskaber der findes, inklusive prototypen

så nu, hvis vi ville, kan vi oprette et objekt, der ikke har nogen forbindelse til objektet.prototype.

da vores nye objekt imidlertid ikke har nogen forbindelse til prototypen, har det heller ikke enumerable, skrivbare eller konfigurerbare egenskaber. Hvilket betyder, at vi kan tilføje til dette objekt så meget som vi vil, men vi kan ikke ændre eller fjerne noget.

selvom vi lige har tildelt myProp, forbliver det på 42.

vi kommer endda tilbage “falsk”, når du bruger sletteordet

i de fleste tilfælde er det ikke det, du vil have. Men der er helt sikkert et par kant tilfælde, hvor en statisk, uforanderlig objekt er præcis, hvad du har brug for! Hvis du arbejder på et team og har et objekt i din kode, der absolut aldrig behøver at have sine egenskaber fjernet/ændret — objekt.Opret () kan være præcis, hvad du leder efter.

så objekt.create () er super nyttigt, når det kommer til klassisk arv, men det giver også programmøren total kontrol over objektet, der laves — hvilket kan være ret flot.