First-Class-Funktionen und High-Order-Funktionen in JavaScript

Dec 16 2022
Eine Funktion ist ein Codeblock, der zur Ausführung einer bestimmten Aufgabe entwickelt wurde. Funktionen sind sehr wichtige und mächtige grundlegende Bausteine ​​in JavaScript.

Eine Funktion ist ein Codeblock, der zur Ausführung einer bestimmten Aufgabe entwickelt wurde. Funktionen sind sehr wichtige und mächtige grundlegende Bausteine ​​in JavaScript. Wenn Sie anfangen, sich mit Funktionen in JavaScript zu beschäftigen, haben Sie wahrscheinlich schon einmal die Begriffe „Erstklassige Funktionen“ und „High-Order-Funktionen“ gehört. Werfen wir einen Blick darauf, was diese Begriffe auszudrücken versuchen, die Verbindung zwischen ihnen und was sie uns bieten.

JavaScript hat all diese Fähigkeiten oder Merkmale, die eine Sprache mit First-Class-Funktionen sein muss, daher werden Funktionen als First-Class-Bürger behandelt. Nun, die Bedeutung von „erstklassigen Bürgern (Objekten)“ ist, dass in der Programmiersprache eine gegebene Entität (Funktion) alle operativen Eigenschaften unterstützt, die anderen Entitäten innewohnen; Eigenschaften wie die Fähigkeit, einer Variablen zugewiesen zu werden, als Funktionsargument weitergegeben zu werden, von einer Funktion zurückgegeben zu werden ... Im Grunde bedeutet erstklassige Staatsbürgerschaft einfach „in der Lage zu sein, das zu tun, was alle anderen tun können“. Infolgedessen hat die Programmiersprache erstklassige Funktionen, wenn Funktionen in dieser Sprache wie jede andere Variable behandelt werden.

Schauen wir uns an, welche Funktionen uns ein First-Class-Bürger in JavaScript bietet und welche Türen es uns zu allen Arten von programmatischen Paradigmen und Techniken öffnet, die sonst nicht möglich wären.

  • Fähigkeit, Funktionen in einer Variablen zu speichern
  • const summation = function (a,b) {
    return a+b
    }
    summation(1,2) // 3
    

    const foo = {
     value: 1,
     summation: function(a,b) {
       return a+b+this.value
     }   
    }
    const sum = foo.summation(2,3)
    console.log(sum) // 6
    

    function sayHello() {
      return "Hello ";
    }
    function sayHelloWorld(sayHello, param) {
      console.log(sayHello() + param);
    }
    
    sayHelloWorld(sayHello, "World!") // "Hello World"
    

    function sayHelloWorld() {
      return () => {
        console.log("Hello World!");
      };
    }
    
    // First Approach
    sayHelloWorld()() // "Hello World!"
    
    // Second Approach
    const greeting = sayHelloWorld()
    greeting() // "Hello World!"
    

    const fibonacci = (n) => (n <= 2 ? 1 : fibonacci(n - 1) + fibonacci(n - 2));
    
    console.log(fibonacci(10)) // 55
    

    function sayHelloWorld() {
      console.log(`${this.firstWord} ${this.secondWord}`);
    }
    
    const obj = {
      firstWord: "Hello",
      secondWord: "World!",
    };
    
    sayHelloWorld.call(obj) // "Hello World!"
    

  • Reduzieren() Beispiel
  • const arr = [1, 2, 3, 4];
    
    const initialValue = 0;
    const sumWithInitial = arr.reduce(
      (accumulator, currentValue) => accumulator + currentValue,
      initialValue
    );
    
    console.log(sumWithInitial) // 10
    

    const sayHelloWorld = () => console.log("Hello World")
    btn.addEventListener("onclick" , sayHelloWorld)