⊗jsPmClCNG 265 of 505 menu

Variabel Global Penghitung dalam JavaScript

Mari letakkan variabel num di luar fungsi, sehingga menjadikannya global:

let num = 1; // variabel global function test() { return function() { console.log(num); num++; }; }

Dalam kasus ini, semua fungsi yang dikembalikan akan mengubah variabel global ini dan penghitung akan bekerja saling bergantung satu sama lain:

let num = 1; function test() { 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 3 func2(); // akan menampilkan 4

Mengapa kode kita sebelumnya membuat penghitung yang independen? Izinkan saya mengingatkan kode ini:

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

Masalahnya adalah variabel num bersifat lokal di dalam fungsi test. Oleh karena itu, setiap pemanggilan test menghasilkan variabel lokalnya sendiri.

Jadi, fungsi-fungsi yang dikembalikan akan merujuk masing-masing ke variabel lokal fungsi test. Dengan cara inilah independensi kerja tercapai.

Jika num dijadikan variabel global - ini juga merupakan closure. Hanya saja, lingkungan leksikal dari fungsi-fungsi yang dikembalikan merujuk pada variabel num yang sama - perubahan apapun pada variabel ini akan terlihat di semua fungsi.

Tentukan, tanpa menjalankan kode, apa yang akan ditampilkan di konsol:

let counter = 0; function test() { return function() { console.log(counter); counter++; }; } let func = test; let func1 = func(); let func2 = func(); func1(); func2(); func1(); func2();

Tentukan, tanpa menjalankan kode, apa yang akan ditampilkan di konsol:

function test() { let counter = 0; return function() { return function() { console.log(counter); counter++; }; }; } let func = test()(); let func1 = func; let func2 = func; func1(); func2(); func1(); func2();

Tentukan, tanpa menjalankan kode, apa yang akan ditampilkan di konsol:

function test() { let counter = 0; return function() { return function() { console.log(counter); counter++; }; }; } let func = test(); let func1 = func(); let func2 = func(); func1(); func2(); func1(); func2();
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