⊗jsPmClCr 263 of 505 menu

Zähler mit Closures in JavaScript

Lassen Sie uns den von uns betrachteten Code so umschreiben, dass die zurückgegebene Funktion jedes Mal den Wert der Variable num um eins erhöht:

function test() { let num = 1; return function() { console.log(num); num++; // eins addieren } } let func = test();

Es stellt sich heraus, dass jeder Aufruf der Funktion func einen neuen Wert in der Konsole ausgibt:

function test() { let num = 1; return function() { console.log(num); num++; } } let func = test(); func(); //gibt 1 aus func(); //gibt 2 aus func(); //gibt 3 aus func(); //gibt 4 aus func(); //gibt 5 aus

Es stellt sich heraus, dass wir einen Zähler für Funktionsaufrufe implementiert haben, indem wir einen Closure verwendet haben (genauer gesagt, die Variable num aus dem Closure unserer Funktion).

Beachten Sie, dass jeder Aufruf der Funktion test eine neue Funktion zurückgibt, die ihren eigenen Closure hat. Das bedeutet, dass verschiedene Zähler unabhängig voneinander arbeiten:

function test() { let num = 1; return function() { console.log(num); num++; }; } let func1 = test(); // erster Zähler func1(); //gibt 1 aus func1(); //gibt 2 aus let func2 = test(); // zweiter Zähler func2(); //gibt 1 aus func2(); //gibt 2 aus

Es stellt sich heraus, dass dieselbe Variable num für verschiedene Funktionen unterschiedliche Werte haben wird!

Das bedeutet, wenn wir die Funktion test zweimal aufrufen, dann werden die daraus erhaltenen Funktionen unabhängig voneinander arbeiten und jede dieser Funktionen wird ihre eigene unabhängige Variable num haben.

Implementieren Sie selbstständig, ohne in meinen Code zu schauen, einen Funktionsaufrufzähler, der mit Closures arbeitet.

Lassen Sie die Funktion in einem Closure die Zahl 10 speichern. Sorgen Sie dafür, dass jeder Funktionsaufruf diese Zahl um 1 verringert und die verringerte Zahl in der Konsole ausgibt.

Modifizieren Sie die vorherige Aufgabe so, dass der Countdown bis 0 läuft und dann jeder folgende Funktionsaufruf eine Nachricht in der Konsole ausgibt, dass der Countdown beendet ist.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen