Sobes.tech
Junior

Milliseid funktsioonide loomise viise teate?

sobes.tech AI

Vastus AI-lt

JavaScriptis on mitu viisi funktsioonide loomiseks, igaühel oma omadused:

  1. 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 + "!";
    }
    
  2. 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 + "!";
    };
    
  3. Noolefunktsioonid (Arrow Functions): Lühike süntaks funktsiooni väljenditele. Erinevad klassikalistest funktsioonidest this ja argumentide puudumise tõttu (arguments).

    // Noolefunktsioon
    const greet = (name) => {
      return "Tere, " + name + "!";
    };
    
    // Lühike vorm noolefunktsioonist ilma selge tagastuseta
    const greetShort = (name) => "Tere, " + name + "!";
    
  4. 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);
    
  5. 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");
    
  6. 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.