การวิเคราะห์สั้น ๆ เกี่ยวกับการแก้ปัญหาการเปลี่ยนแปลงตัวแปรที่เกิดจากการดำเนินการแบบอะซิงโครนัส JavaScript
สำหรับ (var i = 0; i <3; i ++) {settimeout (function () {console.log (i)}, 0);} เอาต์พุตคอนโซล: 333นี่เป็นเพราะเมื่อมีการดำเนินการวิธีการลูปจะถูกดำเนินการและทุกครั้งที่มีการดำเนินการจะเป็น 3 แทนที่จะเป็น 1-2-3 ในเวลานี้เราสามารถใช้ฟังก์ชั่นการดำเนินการทันทีเพื่อสร้างสำเนาของตัวแปรสำหรับแต่ละลูปสำหรับตัวจับเวลาเพื่อเรียกใช้เพื่อแก้ปัญหานี้
สำหรับ (var i = 0; i <3; i ++) {settimeout ((ฟังก์ชัน () {var _i = i; return function () {console.log (_i)};}) (), 0); } เอาต์พุตคอนโซล: 123การวิเคราะห์สั้น ๆ ข้างต้นเกี่ยวกับปัญหาของการแก้ปัญหาการเปลี่ยนแปลงตัวแปรที่เกิดจากการดำเนินการแบบอะซิงโครนัสของฟังก์ชั่น JavaScript เป็นเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น