Câu hỏi của tôi thực sự là một sự hiểu biết - Tôi có một giải pháp làm việc, tôi chỉ không hiểu cách hoạt động của nó.Câu hỏi hiểu biết về phạm vi toàn cầu biến thiên
Được rồi, vì vậy - những gì tôi đang cố gắng làm là thêm một setTimeout trong một vòng lặp và chuyển giá trị thay đổi thông qua nó. Ví dụ:
for (i=0;i<11;i++)
{
setTimeout("alert(i)",1000);
}
Nếu tôi hiểu đúng, làm việc doesnt này vì Javascript không (như PHP) vượt qua giá trị của i với chức năng, nhưng qua một tham chiếu của tôi - do đó không phải là tĩnh, nhưng vẫn tiếp tục để thay đổi với bộ đếm.
Tôi tìm thấy một giải pháp, mà đi như thế này:
for (i=0;i<11;i++)
{
setTimeout(function(x){return function(){alert(x)};}(i),1000);
}
tôi không thực sự hiểu những gì này thực hiện. Có vẻ như nó chuyển một chức năng "cảnh báo" trở lại chức năng gọi điện, nhưng tôi không thể hiểu được điều đó.
Tôi có thể làm việc với giải pháp này và cũng thích ứng với các ngữ cảnh khác, nhưng tôi thực sự muốn hiểu tất cả mã của tôi, không chỉ sử dụng những thứ tôi tìm thấy ở đâu đó và vui vẻ. Và ngoài ra, tôi đang tìm kiếm một phiên bản mỏng hơn để đạt được cùng một mục tiêu.
Cảm ơn, Marco
+1 cho "Tôi thực sự muốn hiểu tất cả mã của tôi, không chỉ sử dụng nội dung tôi tìm thấy ở đâu đó và vui vẻ khi hoạt động" –