Articles

JavaScript: ce este obiect.creați ()?

alte utilizări ingenioase ale obiectului.creați ()

obiect.creare () poate lua un al doilea argument

obiect.create () poate fi folosit pentru a face uz de unele dintre multe ciudatenii JavaScript lui. În primul rând, poate lua un al doilea argument ca obiect care are proprietăți pe care doriți să le includeți în obiectul nou returnat. Nu numai asta, dar puteți trece de fapt ca primul argument, spunând în esență că nu trebuie să existe niciun prototip pe obiectul returnat. Acest lucru poate părea relativ inutil, și este cele mai multe cazuri de Utilizare, probabil, este, dar ce se întâmplă dacă ai vrut un obiect care a avut nici un prototip? De exemplu, spuneți că aveți nevoie de un obiect static ale cărui proprietăți nu ar trebui niciodată schimbate, de dvs. sau de oricine altcineva? Literali obiect, create folosind {} de bază, vin cu o mulțime de proprietăți built-in — inclusiv cele care le fac configurabile; întrucât obiectele create cu obiect.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.crea, putem defini exact ce proprietăți există, inclusiv prototipul

Deci, acum, dacă ne-am dorit, putem face un obiect care nu are nici o legătură cu obiectul.prototip.

cu toate acestea, deoarece noul nostru obiect nu are nicio legătură cu prototipul, de asemenea nu are proprietăți enumerabile, inscriptibile sau configurabile. Ceea ce înseamnă că putem adăuga la acest obiect cât dorim, dar nu putem schimba sau elimina nimic.

chiar dacă tocmai am reatribuit myProp, rămâne la 42.

chiar ne întoarcem „false” atunci când se utilizează cuvântul cheie delete

în cele mai multe cazuri, acest lucru nu este ceea ce ai vrea. Dar există cu siguranță câteva cazuri de margine în care un obiect static, neschimbat este exact ceea ce aveți nevoie! Dacă lucrați într — o echipă și aveți un obiect în codul dvs. care cu siguranță nu trebuie să aibă proprietățile sale eliminate/modificate-obiect.creați () poate fi exact ceea ce căutați.

deci obiect.create () este foarte util atunci când vine vorba de moștenirea clasică, dar oferă, de asemenea, programatorului un control total asupra obiectului realizat — ceea ce poate fi destul de frumos.