In unserer täglichen Entwicklung begegnen wir häufig auf eine Situation, in der wir eine Funktion nur einmal ausführen möchten, insbesondere wenn einige Schleifen oder zeitgesteuerte Ausführung.
Laden Sie ohne weiteres den Code hoch:
Funktion Runonce (fn, context) {// steuern Sie die Funktion, um die Rückgabefunktion () {try {fn.apply (Kontext || this, Argumente); } catch (e) {console.Error (e); // Im Allgemeinen können Sie diese Zeile kommentieren} endlich {fn = null; }}} // Verwendung 1: var a = 0; var canonlyFireonce = runonce (function () {a ++; console.log (a);}); CanonlyFireonce (); // 1canonlyfireonce (); // nichts CanonlyFireonce (); // nichts // Verwendung 2: var name = "zhang san"; var canonlyfireonce = runonce (function () {console.log ("hello" + this.name);}); CanonlyFireonce (); // Hallo Zhang SanonlyFireonce (); // nichts // Verwendung 3: var obj = {name: "Die einsamen Gänse aus der Welt", Alter: 24}; var CanonlyFireonce = runonce (function () {console.log ("hello" + this.name);}, obj); CanonlyFireonce (); // Hallo, Tianya, CanonlyFireonce (); // NichtsDa nach der Ausführung der Rückgabefunktion einmal fn = null sie nicht null setzt, wird sie später nicht ausgeführt. Veröffentlichen Sie einen anderen Code, der von anderen online geteilt wird. Das Prinzip ist das gleiche:
Funktion einmal (fn, Kontext) {var Ergebnis; return function () {if (fn) {result = fn.apply (Kontext || this, Argumente); fn = null; } Rückgabeergebnis; };} // useagevar canonlyfireonce = einmal (function () {console.log ('feuert!');}); CanonlyFireonce (); // "gefeuert!" CanonlyFireonce (); // NichtsDas obige ist eine Sammlung der Funktionsbeispiele, mit denen Sie JavaScript nur einmal ausführen können. Wenn Sie es brauchen, können Sie sich darauf verweisen.