Sobes.tech
Middle

Was sind die Methoden call, apply und bind in JavaScript?

sobes.tech KI

Antwort von AI

call, apply und bind sind Methoden, die für alle Funktionen in JavaScript verfügbar sind. Sie werden verwendet, um den Ausführungskontext der Funktion (den Wert von this) zu steuern.

  • call: Ruft eine Funktion mit einem angegebenen this-Wert und einzelnen Argumenten auf.
    // Beispiel für die Verwendung von call
    function greet() {
      return "Hallo, " + this.name + "!";
    }
    
    const person = { name: "Ivan" };
    
    console.log(greet.call(person)); // Ausgabe: Hallo, Ivan!
    
  • apply: Ruft eine Funktion mit einem angegebenen this-Wert und Argumenten auf, die in Form eines Arrays oder Pseudoarrays übergeben werden.
    // Beispiel für die Verwendung von apply
    function sum(a, b) {
      return this.base + a + b;
    }
    
    const context = { base: 10 };
    const numbers = [5, 3];
    
    console.log(sum.apply(context, numbers)); // Ausgabe: 18
    
  • bind: Erstellt eine neue Funktion, die beim Aufruf einen festgelegten this-Wert hat. Die ursprüngliche Funktion wird dabei nicht sofort aufgerufen.
    // Beispiel für die Verwendung von bind
    const module = {
      x: 42,
      getX: function() {
        return this.x;
      }
    };
    
    const unboundGetX = module.getX;
    console.log(unboundGetX()); // Ausgabe: undefined (this zeigt auf das globale Objekt)
    
    const boundGetX = unboundGetX.bind(module);
    console.log(boundGetX()); // Ausgabe: 42 (this ist an module gebunden)
    

Hauptunterschiede:

Methode Argumentübergabe Funktionsaufruf Rückgabewert
call Separat (durch Komma) Sofort Ergebnis der Funktion
apply Als Array oder Pseudoarray Sofort Ergebnis der Funktion
bind Separat (durch Komma) Nicht sofort Neue Funktion mit gebundenem this