JavaScript piedāvā daudz iespēju objekta izveidei un manipulācijai ar objektiem. Tradicionālā klasēm un prototipiem balstīta pieeja ir plaši izplatīta, taču ir arī alternatīvas, kuras bieži vien ir elastīgākas un vienkāršākas. Šajā apmācībā tu iemācīsies, kā efektīvi izveidot objektus JavaScript bez klasēm izveidošanas. Mēs izmantosim Douglasa Krokforda pieeju, kas balstās uz funkcijām un piedāvā interesantu skatījumu uz ES6 un turpmākajām versijām.

Galvenie atziņas

  • Objektus var izveidot bez klašu un this izmantošanas
  • Funkcijām balstīta objektu izveide ļauj elastīgākas un vieglāk lasāmas kodu struktūras
  • Ar objekta destrukturizāciju objekta apstrāde kļūst efektīvāka un vienkāršāka

Darba solis pa solim objekta izveidei bez klasēm

Sāc ar funkcijas izveidi, kas atgriež objektu. To tu vari darīt, izmantojot pamata funkciju sintaksi.

Objekte ohne Klassen in JavaScript erstellen

Šajā piemērā mēs definējam funkciju createShape. Šajā funkcijā mēs radām jaunu objektu, kam ir dažādas īpašības, piemēram, id, x un y. Tu vari arī pievienot citas metodes, lai paplašinātu objekta funkcionalitāti.

Pārliecinies, ka tu nodod parametrus, kas definē objektu, funkcijai. Tādā veidā tu vari izveidot objekta instanci ar specifiskiem atribūtiem.

Lai padarītu objektu noderīgu, tu vari arī definēt metodes, kas ir iekļautas objektā. Piemēram, tu vari pievienot print metodi, kas izvada objekta īpašības.

Izveidot objektus bez klasēm JavaScriptā

Šeit tu paplašināsi createShape funkciju ar print metodi. Pārliecinies, ka metode ir pareizi ieviesta, lai nodrošinātu, ka tā var atsaukties uz objekta īpašībām.

Vēl viens elements ir move metodes ieviešana. Šo metodi var izmantot, lai mainītu objekta x un y koordinātas. Neaizmirsti skaidri nosaukt parametrus, lai izvairītos no neskaidrībām.

Tu vari izmantot arī funkcijas objekta destrukturizācijai. Tā vietā, lai nodotu parametrus atsevišķi, vienkārši nodod objektu un izmanto destrukturizāciju, lai izvilktu īpašības.

Šī tehnika padara tavu kodu ne tikai vieglāk lasāmu, bet arī elastīgāku. Tu vari viegli pievienot jaunus parametrus un daļēji noņemt esošos, neapgrūtinot visu funkcionalitāti.

Ja tu plāno integrēt arī citas funkcijas, tu vari definēt otro funkciju createBaseShape, kas implementē dažus pamata uzvedības noteikumus un tiek izsaukta no pirmā objekta.

Screenshot_目330

Izmantojot turpmākās pieejas, tu vari piekļūt vai nu printBase vai citām funkcijām, un izmantot tās, neveicot this vai līdzīgas funkcijas.

Noslēguma uzlabojums ir objekta sasaldēšana, lai nodrošinātu, ka tā īpašības pēc izveides nevar tikt mainītas. To var izdarīt, izmantojot metodi Object.freeze().

Šīs tehnikas demonstrē, ka ir daudz veidu, kā tu vari izveidot un pārvaldīt objektus JavaScript, neizmantojot klasēm balstītu modeli.

Kopsavilkums – Objekti bez klasēm JavaScript

Šajā apmācībā tu iemācījies, kā efektīvi izveidot objektus JavaScript bez klasēm. Funkcijām balstīta objektu izveide nodrošina lielu elastību un kontroli. Ieviešot dažādas metodes, piemēram, destrukturizāciju un Object.freeze, tu iegūsti iespēju izveidot robustas un viegli uzturamas struktūras, kas nāk par labu tavam kodam.

Biežāk uzdotie jautājumi

Kā izveidot objektu JavaScript bez klasēm?Tu vari definēt funkciju, kas rada un atgriež jaunu objektu.

Kas ir funkcijām balstītas objektu izveides priekšrocības?Tā ļauj elastīgāku objektu apstrādi, vieglu paplašināšanos, izmantojot destrukturizāciju, un novērš nevēlamas modifikācijas, izmantojot Object.freeze.

Vai es varu definēt metodes objektus izveidojošās funkcijās?Jā, tu vari radīt metodes tieši objekta atgriešanas funkcijā.

Vai šī pieeja pilnībā aizstāj tradicionālo klasēm balstītu modeli?Tā ir alternatīva metode, kas daudzos specifiskos gadījumos var izrādīties noderīgāka, bet nepretendē uz to, lai pilnībā aizvietotu klases.