⊗jsPmClCNL 264 of 505 menu

ตัวแปรท้องถิ่นของตัวนับใน JavaScript

พิจารณารหัสต่อไปนี้:

function test() { let num = 1; return function() { console.log(num); num++; }; } test()(); // จะแสดง 1 test()(); // จะแสดง 1

ทำไมถึงแสดงตัวเลข 1 เสมอ? เพื่อที่จะเข้าใจสิ่งนี้ ลองเขียนโค้ดของเราใหม่ในรูปแบบอื่น:

function test() { let num = 1; return function() { console.log(num); num++; }; }; let func1 = test(); //!! ฟังก์ชันแรก func1(); //จะแสดง 1 let func2 = test(); //!! ฟังก์ชันที่สอง func2(); //จะแสดง 1

นั่นคือ การเรียกใช้ฟังก์ชัน test ในลักษณะนี้: test()() แต่ละครั้งจะสร้างฟังก์ชันของตัวเองพร้อมกับ Closure ของตัวเองและเรียกใช้ฟังก์ชันนั้นทันที

กำหนดว่า โดยไม่ต้องรันโค้ด อะไรจะถูกแสดงในคอนโซล:

function func() { let num = 0; return function() { console.log(num); num++; }; } func()(); func()(); func()();

กำหนดว่า โดยไม่ต้องรันโค้ด อะไรจะถูกแสดงในคอนโซล:

function func() { let num = 0; return function() { console.log(num); num++; }; } let test = func; test()(); test()(); test()();
ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικά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
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ