Milliseid funktsioonide loomise viise teate?
sobes.tech AI
Vastus AI-lt
JavaScriptis on mitu viisi funktsioonide loomiseks, igaühel oma omadused:
-
Funktsiooni deklaratsioonid (Function Declarations): Klassikaline viis funktsiooni loomisel. Need (hoisted) tõstetakse üles nähtavuse piirkonnas, võimaldades neid kutsuda enne deklaratsiooni.
// Funktsiooni deklaratsioon function abil function greet(name) { return "Tere, " + name + "!"; } -
Funktsiooni väljendid (Function Expressions): Funktsioon luuakse osana väljendist ja omistatakse muutujale. Need (not hoisted) ei tõsteta samal määral kui funktsiooni deklaratsioonid.
// Funktsiooni väljend const greet = function(name) { return "Tere, " + name + "!"; }; -
Noolefunktsioonid (Arrow Functions): Lühike süntaks funktsiooni väljenditele. Erinevad klassikalistest funktsioonidest
thisja argumentide puudumise tõttu (arguments).// Noolefunktsioon const greet = (name) => { return "Tere, " + name + "!"; }; // Lühike vorm noolefunktsioonist ilma selge tagastuseta const greetShort = (name) => "Tere, " + name + "!"; -
Konstruktorifunktsioonid (Constructor Functions): Kasutatakse objektide loomisel. Kutsutakse välja võtmesõnaga
new.// Konstruktorifunktsioon function Person(name, age) { this.name = name; this.age = age; } // Näide objekti loomisega konstruktoriga const person1 = new Person("Aleksei", 30); -
Klassi meetodid (Class Methods): Klassides (süntaktiline suhkur prototüüp pärimisele) määratletakse funktsioonid meetoditena.
// Klass koos meetodiga class Greeter { greet(name) { return "Tere, " + name + "!"; } } // Näide klassi instantsi loomise ja meetodi kutsumisega const greeter = new Greeter(); const message = greeter.greet("Maailm"); -
IIFE (Kohe kutsutavad funktsioonid): Funktsiooni väljend, mis täidetakse kohe pärast loomist. Kasutatakse lokaalse nähtavuse tsooni loomiseks.
// IIFE (function() { // IIFE sees olev kood console.log("See funktsioon täidetakse kohe!"); })();
Iga meetodil on oma plussid ja miinused ning valik sõltub konkreetsest ülesandest ja kontekstist.