⊗jsPmClCr 263 of 505 menu

Penghitung dengan Closure di JavaScript

Mari kita tulis ulang kode yang telah kita bahas sehingga fungsi yang dikembalikan setiap kali menambah nilai variabel num sebesar satu:

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

Hasilnya, setiap pemanggilan fungsi func akan menampilkan nilai baru di konsol:

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

Jadi, kita telah mengimplementasikan penghitung pemanggilan fungsi, menggunakan closure (lebih tepatnya menggunakan variabel num dari closure fungsi kita).

Perlu diingat bahwa setiap pemanggilan fungsi test akan mengembalikan fungsi baru, yang akan memiliki closure-nya sendiri. Artinya, penghitung yang berbeda akan bekerja secara independen:

function test() { let num = 1; return function() { console.log(num); num++; }; } let func1 = test(); // penghitung pertama func1(); //akan menampilkan 1 func1(); //akan menampilkan 2 let func2 = test(); // penghitung kedua func2(); //akan menampilkan 1 func2(); //akan menampilkan 2

Artinya, variabel num yang sama untuk fungsi yang berbeda akan memiliki nilai yang berbeda!

Jadi, jika kita memanggil fungsi test dua kali, maka fungsi yang diperoleh darinya akan bekerja secara independen dan masing-masing fungsi tersebut akan memiliki variabel num independennya sendiri.

Secara mandiri, tanpa melihat kode saya, implementasikan penghitung pemanggilan fungsi, yang bekerja menggunakan closure.

Misalkan fungsi dalam closure menyimpan angka 10. Atur sedemikian rupa sehingga setiap pemanggilan fungsi mengurangi angka ini sebesar 1 dan menampilkan angka yang berkurang ke konsol.

Modifikasi tugas sebelumnya sehingga penghitungan mundur mencapai 0, kemudian setiap pemanggilan fungsi berikutnya menampilkan pesan di konsol bahwa penghitungan mundur telah selesai.

Indonesia
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan cookie untuk operasi situs, analitik, dan personalisasi. Pemrosesan data dilakukan sesuai dengan Kebijakan Privasi.
terima semua atur tolak