Articles

JavaScript: Vad är objekt.skapa ()?

andra fiffiga användningar av objekt.skapa ()

objekt.Skapa () kan ta ett andra argument

objekt.create () kan användas för att använda sig av några av JavaScript många egenheter. Först och främst kan det ta ett andra argument som ett objekt som har egenskaper som du vill inkludera i det nyligen returnerade objektet. Inte bara det, men du kan faktiskt passera in som det första argumentet, i huvudsak säger att det inte finns någon prototyp på det returnerade objektet. Detta kan tyckas relativt värdelös, och är de flesta användningsfall det förmodligen är, men vad händer om du ville ha ett objekt som inte hade någon prototyp? Säg till exempel att du behöver ett statiskt objekt vars egenskaper aldrig ska ändras, av dig eller någon annan? Objektbokstäver, skapade med basic {}, kommer med en massa inbyggda egenskaper-inklusive de som gör dem konfigurerbara; medan objekt skapade 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.Skapa, vi kan definiera exakt vilka egenskaper som finns, inklusive prototypen

så nu, om vi ville, kan vi skapa ett objekt som inte har någon koppling till objektet.prototypstadiet.

eftersom vårt nya objekt inte har någon koppling till prototypen har det inte heller uppräkbara, skrivbara eller konfigurerbara egenskaper. Vilket innebär att vi kan lägga till det här objektet så mycket vi vill, men vi kan inte ändra eller ta bort någonting.

även om vi bara omfördelade myProp, förblir det vid 42.

vi får även tillbaka ”False” när du använder delete keyword

i de flesta fall är det inte vad du vill ha. Men det finns säkert några kantfall där ett statiskt, oföränderligt objekt är precis vad du behöver! Om du arbetar i ett team och har ett objekt i din kod som definitivt aldrig behöver ta bort/ändra dess egenskaper — objekt.Skapa () kan vara exakt vad du letar efter.

Så objekt.create () är super användbart när det gäller klassisk arv, men det ger också programmeraren total kontroll över objektet som görs — vilket kan vara ganska trevligt.