Articles

JavaScript: mikä on objekti.luo ()?

objektin muut näppärät käyttötarkoitukset.create ()

Object.create () voi ottaa toisen argumentin

objekti.create () voidaan hyödyntää joitakin JavaScriptin monia oikkuja. Ensinnäkin, se voi ottaa toisen argumentin objektina, jolla on ominaisuuksia, jotka haluat sisällyttää juuri palautettuun objektiin. Ei vain, että, mutta voit itse välittää kuin ensimmäinen argumentti, lähinnä sanomalla, että ei ole prototyyppiä palautetun objektin. Tämä voi tuntua suhteellisen hyödytön, ja on useimmat käyttötapaukset se luultavasti on, mutta entä jos haluat esine, joka ei ollut prototyyppi? Esimerkiksi, sanot tarvitsevasi staattisen objektin, jonka ominaisuuksia sinun tai kenenkään muunkaan ei pitäisi koskaan muuttaa? Object literals, luotu käyttäen perus {}, mukana liuta sisäänrakennettuja ominaisuuksia-mukaan lukien ne, jotka tekevät niistä konfiguroitavissa; kun taas objektit luotu objekti.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.luo, voimme määritellä tarkalleen mitä ominaisuuksia on olemassa, mukaan lukien prototyyppi

joten nyt, jos haluamme, voimme tehdä objektin, jolla ei ole yhteyttä objektiin.prototyyppi.

koska uudella kohteellamme ei kuitenkaan ole yhteyttä prototyyppiin, sillä ei ole myöskään lueteltavia, kirjoitettavia tai konfiguroitavia ominaisuuksia. Voimme lisätä esinettä niin paljon kuin haluamme, mutta emme voi muuttaa tai poistaa mitään.

vaikka myProp siirrettiin juuri, se jää sijalle 42.

div>

saamme jopa takaisin ”False”, kun käytämme poistosanaa

useimmissa tapauksissa tätä ei haluaisi. Mutta on varmasti muutamia reunatapauksia, joissa staattinen, muuttumaton esine on juuri se, mitä tarvitset! Jos työskentelet tiimissä ja koodissasi on objekti, jonka ominaisuuksia ei missään nimessä tarvitse poistaa/muuttaa-objekti.create () voi olla juuri sitä, mitä etsit.

So Object.create () on erittäin hyödyllinen, kun se tulee klassinen perintö, mutta se antaa myös ohjelmoijalle täydellisen hallinnan objekti tehdään — joka voi olla melko mukavaa.