Heim  >  Artikel  >  Web-Frontend  >  Wie erstelle ich eine Funktion, die jede bereitgestellte Funktion mithilfe von JavaScript aufruft?

Wie erstelle ich eine Funktion, die jede bereitgestellte Funktion mithilfe von JavaScript aufruft?

PHPz
PHPznach vorne
2023-08-24 12:41:021222Durchsuche

如何使用 JavaScript 创建一个调用每个提供的函数的函数?

In JavaScript sind Funktionen erstklassige Objekte, was bedeutet, dass sie als Argumente an andere Funktionen übergeben werden können. Dies ist eine leistungsstarke Funktion, mit der einige interessante Muster erstellt werden können.

Ein solches Muster ist das "invoke-each"-Muster, bei dem eine Funktion erstellt wird, die jede bereitgestellte Funktion mithilfe der empfangenen Argumente aufruft.

Warum das Invoke-Each-Muster verwenden?

Es gibt mehrere Gründe, warum Sie das Invoke-Each-Muster verwenden möchten.

Erstens kann es dazu verwendet werden, die Details darüber zu abstrahieren, wie eine Reihe von Funktionen aufgerufen werden. Dies ist hilfreich, wenn die Funktion auf komplexe oder sich wiederholende Weise aufgerufen wird.

Zweitens kann damit eine Art „Pipeline“ erstellt werden, bei der die Ausgabe jeder Funktion als Eingabe an die nächste Funktion in der Kette übergeben wird. Dies ist eine bequeme Möglichkeit, eine Reihe von Aktionen aneinanderzureihen. Schließlich kann damit eine

„Tee“-Funktion erstellt werden, die mehrere Funktionen mit denselben Parametern aufruft und die Ergebnisse sammelt. Dies ist für die Protokollierung, das Debuggen oder andere Zwecke nützlich.

Wie implementiert man das Invoke-Each-Muster?

Es gibt verschiedene Möglichkeiten, den Aufruf jedes Musters zu implementieren.

Der einfachste Weg besteht darin, einfach die bereitgestellten Funktionen zu durchlaufen und jede Funktion mit den Argumenten aufzurufen -

function invokeEach(functions, args) {
   for (var i = 0; i < functions.length; i++) {
      functions[i].apply(null, args);
   }
}

Im obigen Code durchlaufen wir die Funktionen und rufen jede Funktion mit der Methode

Function.prototype.apply()

auf. Mit dieser Methode können wir eine Funktion mit einem bestimmten Wert- und Parameterarray aufrufen.

Wir verwenden hier die Methode apply()

, da dies eine praktische Möglichkeit ist, Parameter als Array zu übergeben. Sie können auch die Methode

Function.prototype.call() verwenden, mit der Sie Parameter als separate Werte übergeben können. Beispiel

Vollständiges Beispiel für einen funktionierenden Code unten.

<!doctype html>
<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="result"></div>
   <div id="result1"></div>
   <div id="result2"></div>
   <div id="result3"></div>
   <script>
      function foo(x) {
         document.getElementById("result").innerHTML = 'foo: ' + x;
      }
      function bar(x) {
         document.getElementById("result1").innerHTML = 'bar: ' + x;
      }
      function baz(x) {
         document.getElementById("result2").innerHTML = 'baz: ' + x;
      }
      function qux(x) {
         document.getElementById("result3").innerHTML ='qux: ' + x;
      }
      function invokeEach(functions, args) {
         for (var i = 0; i < functions.length; i++) {
            functions[i].apply(null, args);
         }
      }
      invokeEach([foo, bar, baz, qux], [5]);
   </script>
</body>
</html>

Wie Sie sehen können, definiert das obige Codebeispiel vier Funktionen:

foo(), bar(), baz(),

und

qux(). Diese Funktionen geben einfach eine Nachricht mit den bereitgestellten Argumenten aus. Als nächstes definieren wir die Funktion invokeEach()

, die ein Funktionsarray und ein Parameterarray akzeptiert. Diese Funktion durchläuft die bereitgestellten Funktionen und ruft jede Funktion mit den bereitgestellten Argumenten auf.

Schließlich rufen wir die Funktion invokeEach()

auf und übergeben dabei vier Funktionen und einen einzelnen Parameter 5. Dies führt erwartungsgemäß dazu, dass jede Funktion mit Argument 5 aufgerufen wird.

In diesem Tutorial haben wir uns das Invoke-Each-Muster in JavaScript angesehen. Mit diesem Muster kann eine Funktion erstellt werden, die jede bereitgestellte Funktion mit den empfangenen Argumenten aufruft.

Wir haben gelernt, wie man dieses Muster umsetzt und einige der Gründe, warum Sie es vielleicht verwenden möchten.

Das obige ist der detaillierte Inhalt vonWie erstelle ich eine Funktion, die jede bereitgestellte Funktion mithilfe von JavaScript aufruft?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen