Articles

JavaScript: co je objekt.vytvořit()?

Další šikovné použití objektu.vytvořit()

Objekt.create () může mít druhý argument

objekt.create () lze použít k využití některých z mnoha vtípků JavaScriptu. Za prvé, může to trvat druhý argument jako objekt, který má vlastnosti, které chcete zahrnout do nově vráceného objektu. Nejen to, ale můžete skutečně předat jako první argument, v podstatě říká, že na vráceném objektu nemá být žádný prototyp. To se může zdát relativně k ničemu, a je většina případů použití to asi je, ale co když jste chtěli objekt, který neměl prototyp? Řekněme například, že potřebujete statický objekt, jehož vlastnosti byste nikdy neměli měnit vy nebo kdokoli jiný? Objektové literály, vytvořené pomocí základního {}, přicházejí se spoustou vestavěných vlastností — včetně těch, které je činí konfigurovatelnými; zatímco objekty vytvořené s objektem.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.vytvořit, můžeme definovat, co přesně vlastnosti existují, včetně prototypu

Takže teď, pokud bychom chtěli, můžeme vytvořit objekt, který nemá žádné spojení k Objektu.prototyp.

Nicméně, protože náš nový objekt nemá žádné připojení k prototypu, to také nemá enumerable, zapisovatelný, nebo konfigurovatelné vlastnosti. Což znamená, že k tomuto objektu můžeme přidat tolik, kolik chceme, ale nemůžeme nic změnit ani odstranit.

I když jsme jen přeřazen myProp, zůstává na 42.

dokonce Jsme se dostat zpět, „false“, pokud používáte odstranit klíčové slovo

Ve většině případů, to není to, co chceš. Ale určitě existuje několik okrajových případů, kdy statický, neměnný objekt je přesně to, co potřebujete! Pokud pracujete v týmu a máte v kódu objekt, který rozhodně nikdy nemusí mít jeho vlastnosti odstraněny — změněny-objekt.vytvořit () může být přesně to, co hledáte.

takže objekt.create () je velmi užitečný, pokud jde o klasickou dědičnost, ale také dává programátorovi úplnou kontrolu nad vytvářeným objektem — což může být docela pěkné.