Kokius būdus funkcijų kūrimui žinote?
sobes.tech AI
Atsakymas iš AI
Yra keletas būdų kurti funkcijas JavaScript, kiekvienas su savo ypatybėmis:
-
Funkcijų deklaracijos (Function Declarations): Klasikinis būdas kurti funkciją. Jos (hoisted) pakeliamos į viršų matomumo srityje, leidžiant jas kviesti prieš deklaraciją.
// Funkcijos deklaracija naudojant function function greet(name) { return "Labas, " + name + "!"; } -
Funkcijų išraiškos (Function Expressions): Funkcija kuriama kaip išraiškos dalis ir priskiriama kintamajam. Jos (not hoisted) nėra pakeliamos tokia pačia apimtimi kaip funkcijų deklaracijos.
// Funkcijos išraiška const greet = function(name) { return "Labas, " + name + "!"; }; -
Rodyklės funkcijos (Arrow Functions): Sutrumpinta sintaksė funkcijų išraiškoms. Skiriasi nuo klasikinių funkcijų
thisypatybėmis ir neturi savo argumentų (arguments).// Rodyklės funkcija const greet = (name) => { return "Labas, " + name + "!"; }; // Sutrumpinta forma su neexplicitiniu grąžinimu const greetShort = (name) => "Labas, " + name + "!"; -
Konstruktoriaus funkcijos (Constructor Functions): Naudojamos objektų kūrimui. Kviečiamos su raktiniu žodžiu
new.// Konstruktoriaus funkcija function Person(name, age) { this.name = name; this.age = age; } // Objekto pavyzdžio sukūrimas naudojant konstruktorių const person1 = new Person("Aleksej", 30); -
Klasės metodai (Class Methods): Klasėse (sintaksinis cukrus ant prototipinio paveldėjimo) funkcijos apibrėžiamos kaip metodai.
// Klasės apibrėžimas su metodu class Greeter { greet(name) { return "Labas, " + name + "!"; } } // Klasės pavyzdžio sukūrimas ir metodo kvietimas const greeter = new Greeter(); const message = greeter.greet("Pasaulis"); -
IIFE (Iš karto iškviečiamos funkcijos): Funkcinis išraiška, kuri iš karto po sukūrimo yra vykdoma. Dažnai naudojama vietinės matomumo srities kūrimui.
// IIFE (function() { // IIFE viduje kodas console.log("Ši funkcija iš karto vykdoma!"); })();
Kiekvienas metodas turi savo privalumų ir trūkumų, o pasirinkimas priklauso nuo konkretaus užduoties ir konteksto.