Bultiņu funkcijas ir kompaktākas, taču vai zinājāt, ka tās ievieš daudzas citas atšķirības?

Funkcijas ir būtiska JavaScript sastāvdaļa, kas jāizmanto, lai rakstītu atkārtoti lietojamu kodu. Divi galvenie funkciju veidi ir parastās un bultiņu funkcijas, un ir daudz veidu, kā tos definēt.

Lai gan tie atbilst līdzīgam vajadzībām, tiem ir dažas būtiskas atšķirības, kas var būtiski ietekmēt to, kā jūs tos izmantojat savā kodā. Uzziniet visu par vairākām atšķirībām starp bultiņu funkcijām un parastajām funkcijām.

1. Sintakses atšķirības

Sintakse, kuru izvēlaties, izstrādājot JavaScript funkcijas, lielā mērā ietekmē to, cik vienkārši ir lasīt un saprast jūsu kodu. Parasto un bultiņu funkciju sintakse ievērojami atšķiras, ietekmējot to rakstīšanas un lietošanas veidu.

JavaScript bultiņas funkcijas izmantojiet mazāku valodas struktūru, kas ir saprotamāka. Varat tos izmantot, lai izveidotu funkcijas, apvienojot tās vienā izteiksmē vai priekšrakstā.

konst pievienot = (a, b) => a + b;

Šajā piemērā pievienot

instagram viewer
funkcija pieņem divas ievades, a un b, un atgriež to kopējo summu. The => zīme definē to kā bultiņas funkciju.

No otras puses, lai definētu parasto funkciju, ir jāizmanto funkciju atslēgvārds ar detalizētāku sintaksi, kā parādīts šajā piemērā:

funkcijupievienot(a, b) {
atgriezties a + b;
}

Šajā piemērā funkciju atslēgvārds definē regulāru funkciju, kas izmanto arī cirtaini breketes un atgriezties paziņojums, apgalvojums.

Parastās funkcijas ir noderīgākas sarežģītai sintaksei, kurai nepieciešami vairāki paziņojumi vai izteiksmes. Turpretim bultiņu funkcijas izmanto kodolīgāku sintaksi, kas var padarīt jūsu kodu vieglāk lasāmu un saprotamu.

2. Tvēruma atšķirības

Termins "tvēruma noteikšana" apraksta, kā ir pieejami funkcijas iekšējie mainīgie un funkcijas. Programmā JavaScript jūs definējat un piekļūstat mainīgajiem un funkcijām visā kodā, izmantojot tvēruma noteikšanu. Viņu atšķirīgās tvērums var būtiski ietekmēt to, kā rakstāt un lietojat JavaScript bultiņas un parastās funkcijas.

Nosakot darbības jomu, kā bultiņu funkcijas apstrādā šis atslēgvārds ievērojami atšķiras no parastās funkcijas. Regulāras funkcijas nosaka šis paši atslēgvārdi; tāpēc tas var mainīties atkarībā no konteksta, kurā izsaucat funkciju.

No otras puses, jo tie nenorāda šis atslēgvārds, bultiņu funkcijas izmanto to pašu šis kā tos aptverošais statiskais tvērums.

Lai redzētu atšķirību, skatiet šo piemēru. Pieņemsim, ka jums ir a persona objekts ar a nosaukums īpašums un metode, ko sauc sakiVārds() kas reģistrē personas vārdu, izmantojot parasto funkciju:

konst persona = {
nosaukums: 'Džons,'

sayName: funkciju() {
konsole.log(šis.name);
}
};

persona.sayName(); // žurnāli 'Jānis'

Šeit parastā funkcija sayName() ir personas objekta un objekta metode šis atslēgvārds šajā funkcijā attiecas uz šīs personas objektu.

Tagad izmēģināsim to pašu ar bultiņas funkciju:

konst persona = {
nosaukums: 'Džons',

sayName: () => {
konsole.log(šis.name);
}
};

persona.sayName(); // žurnāli nav definēti

Tā kā bultiņas funkcija, ko izmanto sakiVārds() metode nedefinē savu šis atslēgvārds, tas izmanto šis statiskā joma, kas to ieskauj. Šajā gadījumā tā ir gadījuma globālā darbības joma.

Tā rezultātā, kad jūs zvanāt person.sayName(), tu dabū nenoteikts nevis "Džons." Tas var būtiski ietekmēt to, kā rakstāt un izmantojat funkcijas savā kodā.

3. Lietošanas gadījumi un paraugprakse

Parastās funkcijas ir labāk piemērotas funkcijām, kurām nepieciešamas savas šis atslēgvārdu, piemēram, metodes objektā.

Bultiņu funkcijas ir labāk piemērotas funkcionālā programmēšana un atzvani, kas neprasa šis atslēgvārds.

4. Funkciju saistīšanas atšķirības

Funkciju saistīšana ir termins, ko izmanto, lai aprakstītu attiecības starp šis atslēgvārdu un funkcijas jūsu kodā. Atšķirības funkciju saistīšanā starp bultiņu funkcijām un parastajām funkcijām var būtiski ietekmēt to, kā jūs veidojat un izmantojat bultiņu funkcijas.

Izmantojot šis atslēgvārds padara to unikālu parastajās funkcijās un saista ar dažādiem objektiem, pamatojoties uz metodes izsaukšanai izmantoto metodi. Funkciju saistīšana ir viena no svarīgākajām atšķirībām starp parastajām un bultiņu funkcijām.

Turpretim bultiņu funkcijām nav šis atslēgvārds; drīzāk viņi to iegūst no apkārtējiem tvērumiem.

Apskatīsim piemēru, lai vairāk izprastu šo atšķirību. Pieņemsim, ka jums ir a persona objekts ar a nosaukums lauks un metode, ko sauc sakiVārds() kas izmanto parastu funkciju, lai ierakstītu personas vārdu:

konst persona = {
nosaukums: 'Džons',

sayName: funkciju() {
konsole.log(šis.name);
}
};

konst otherPerson = {
nosaukums: "Džeina"
};

person.sayName.call (citsPerson); // žurnāli 'Jane'

Šajā piemērā jūs izsaucat personas objektu sakiVārds() metode ar vērtību cita persona izmantojot zvanīt () metodi. Sakarā ar to, sakiVārds() metode, šis, atslēgvārds ir saistīts ar cita persona objekts, un tas tiek reģistrēts "Džeina"nevis"Džons."

Tagad izmantosim to pašu ar bultiņas funkciju:

konst persona = {
nosaukums: 'Džons',

sayName: () => {
konsole.log(šis.name);
}
};

konst otherPerson = {
nosaukums: "Džeina"
};

person.sayName.call (citsPerson); // žurnāli nav definēti

Kopš sakiVārds() tehnikai nav sava atslēgvārda, šajā piemērā jūs tajā izmantojat bultiņas funkciju. Šajā gadījumā bultiņas funkcija pārmanto apkārtējā tvēruma, kas ir globālā tvēruma, īpašības.

Tas nozīmē, ka skrienot person.sayName.call (citsPerson), bultiņas funkcija šis atslēgvārds paliek globālais objekts, un nenoteikts ieņem vietu Džeina žurnālā.

Ja jums ir jāsaista funkcija ar noteiktu šis vērtību, ieteicama parasta funkcija. Tomēr, ja jums nav nepieciešams saistīt funkciju ar konkrētu šis vērtību, bultiņas funkcija varētu būt īsāka un vieglāk saprotama.

5. Netieša atgriešanās

Bultiņas funkcijai ir netieša atgriešanas funkcija. Ja funkcijas pamatteksts sastāv no vienas izteiksmes, funkcijas atgriež šo izteiksmi.

Kā piemērs:

konst dubultā = (x) => x * 2;

Šī bultiņas funkcija atgriež dubulto vērtību no parametra. Jums nav jāizmanto tiešs vārds atgriezties atslēgvārdu, jo funkcijas pamattekstam ir tikai viena izteiksme.

6. Saderības atšķirības

Saderības atšķirības attiecas uz ECMAScript 6 pievienotajām bultiņu funkcijām, kas var nedarboties ar vecākām pārlūkprogrammām vai vidēm. No otras puses, parastās funkcijas ir bijušas jau kopš JavaScript sākuma un tiek plaši atbalstītas.

Šeit ir bultiņas funkcijas ilustrācija, kas var nedarboties noteiktos apstākļos:

konst pievienot = (a, b) => a + b;

Tālāk ir norādīta salīdzināma regulāra funkcija, kurai vajadzētu darboties vairumā situāciju:

funkcijupievienot(a, b) {
atgriezties a + b;
}

Izmantojiet parastās funkcijas, nevis bultiņu funkcijas, mērķējot uz vecākām vidēm, lai nodrošinātu saderību. Tomēr bultiņu funkcijas var nodrošināt sintaksi, kas ir vieglāk saprotama un saīsinātāka, strādājot ar modernām pārlūkprogrammām un vidēm.

Izvēle starp bultiņu funkcijām un parastajām funkcijām JavaScript

JavaScript programmā bultiņām un parastajām funkcijām ir atšķirīgas funkcijas un lietojumprogrammas. Bultiņu funkcijām ir vienkārša sintakse, mantošana šis atslēgvārdu termins no to lietošanas konteksta, savukārt parastās funkcijas ir vairāk pielāgojamas un var tikt galā ar sarežģītākām situācijām.

Ir ļoti svarīgi zināt, kā tie atšķiras un kā tos izmantot atbilstoši jūsu koda prasībām. Izvēloties, kādu funkciju izmantot, jāņem vērā arī saderības atšķirības.

Galu galā JavaScript bultiņa un parastās funkcijas ir spēcīgi rīki, kas palīdz rakstīt tīrāku un efektīvāku kodu.