Kādus funkciju izveides veidus jūs zināt?
sobes.tech AI
Atbilde no AI
JavaScript ir ir vairākas veidu funkciju izveidei, katrs ar savām īpatnībām:
-
Funkciju deklarācijas (Function Declarations): Klasisks veids, kā izveidot funkciju. Tās (hoisted) tiek paceltas uz augšu redzamības jomā, ļaujot tās izsaukt pirms deklarācijas.
// Funkcijas deklarācija ar function function greet(name) { return "Sveiki, " + name + "!"; } -
Funkciju izteiksmes (Function Expressions): Funkcija tiek izveidota kā izteiksmes daļa un piešķirta mainīgajam. Tās (not hoisted) netiek paceltas tādā pašā apjomā kā funkciju deklarācijas.
// Funkcijas izteiksme const greet = function(name) { return "Sveiki, " + name + "!"; }; -
Līnijas funkcijas (Arrow Functions): Saīsināta sintakse funkciju izteiksmēm. Atšķiras no klasiskajām funkcijām ar
thisīpašībām un bez savu argumentu (arguments).// Līnijas funkcija const greet = (name) => { return "Sveiki, " + name + "!"; }; // Saīsināta forma ar netiešu atgriešanos const greetShort = (name) => "Sveiki, " + name + "!"; -
Konstruktora funkcijas (Constructor Functions): Tiek izmantotas objektu izveidei. Tiek izsauktas ar atslēgas vārdu
new.// Konstruktora funkcija function Person(name, age) { this.name = name; this.age = age; } // Objekta piemēra izveide ar konstruktoru const person1 = new Person("Aleksejs", 30); -
Klasu metodes (Class Methods): Klasēs (syntaktisks cukurs virs prototipiskās mantošanas) funkcijas tiek definētas kā metodes.
// Klases ar metodi definēšana class Greeter { greet(name) { return "Sveiki, " + name + "!"; } } // Klases piemēra izveide un metodes izsaukšana const greeter = new Greeter(); const message = greeter.greet("Pasaule"); -
IIFE (Uzreiz izsaucamas funkcijas): Funkcijas izteiksme, kas tiek izpildīta nekavējoties pēc tās izveides. Bieži tiek izmantota lokālas redzamības zonas izveidei.
// IIFE (function() { // IIFE iekšējais kods console.log("Šī funkcija tiek izpildīta nekavējoties!"); })();
Katrs no šiem veidiem ir ar saviem plusiem un mīnusiem, un izvēle ir atkarīga no konkrētā uzdevuma un konteksta.