Những công cụ nào có thể được sử dụng để truyền tải các khái niệm như phạm vi và đóng biến của JavaScript rõ ràng trong một cái gì đó tương tự như sơ đồ trình tự UML? Ví dụ, làm thế nào có thể mã hóa như sau: (the Infamous Loop Problem)Sơ đồ cho các chức năng JavaScript
var arr = [];
for(var i=0; i<10; i++) {
arr.push(function() { alert(i); });
}
for(var j=arr.length;j--;) {
arr[j]();
}
... được giải thích rõ ràng trong một sơ đồ tương tự với trang này:
Đó là mã không làm những gì bạn nghĩ rằng nó. Mỗi cảnh báo sẽ cảnh báo giá trị cuối cùng của 'i'. Đó là vấn đề chức năng cổ điển trong vòng lặp. –
Ví dụ của bạn sẽ cảnh báo '10' trên mỗi lần lặp lại. Xem http://stackoverflow.com/questions/5555464/javascript-closure-of-loop – lawnsea
@lawnsea @Matt Ball - Tôi đã sử dụng nó vì lý do chính xác đó; bởi vì đó là ví dụ cổ điển. –