Chạy đoạn mã sau:Phạm vi hoạt Javascript với đóng cửa: giúp tôi hiểu
for (var i=0; i<3; i++) {
setTimeout(function() { console.log(i); } , 500);
}
Đầu ra "3" ba lần. Nó xuất ra giá trị cuối cùng của i
trái ngược với giá trị i
khi hàm bên trong được tạo.
Nếu tôi muốn đầu ra là 1, 2 và 3, tôi sẽ viết mã này bằng cách nào? Làm thế nào tôi có thể làm cho nó sử dụng giá trị của i
tại thời điểm hàm được định nghĩa trái ngược với giá trị cuối cùng của nó?
Ví dụ này sử dụng hai chức năng ẩn danh, trong khi câu trả lời @ z5h của sử dụng một tên chức năng, có thể minh họa khái niệm rõ ràng hơn. – palswim