Nếu bạn bắt đầu với việc sử dụng đơn giản, mà tôi nhận được từ http://ejohn.org/apps/learn/#49
var num = 10;
function addNum(myNum){
return num + myNum;
}
assert(addNum(5) == 15, "Add two numbers together, one from a closure.");
gì đang xảy ra là biến num
bị mắc kẹt (kèm theo) trong addNum
chức năng.
đâu này trở nên tiện dụng là nếu bạn có một cái gì đó (điều này dự kiến sẽ không chạy đúng) như thế này:
for(var t = 0; t < 5; t++) {
var elem = document.getElementById('mydiv' + t);
elem.onclick = function(e) {
alert(t);
};
};
này nên hiển thị các giá trị 5 cho mỗi div mà được thành lập với xử lý sự kiện này.
Nếu bạn kèm theo ví dụ của bộ đếm trong trình xử lý sự kiện của bạn thì nó có thể khác nhau đối với mỗi bộ xử lý, đó là hành vi mong đợi.
Đây là một chủ đề khá nâng cao. Một khi bạn nhận được thoải mái hơn với javascript, bạn có thể muốn xem về việc học nó tại thời điểm đó.
Nguồn
2011-11-17 18:04:55
Xem http://stackoverflow.com/questions/111102/how-do-javascript- đóng cửa-làm việc –
[Ở đây dễ hiểu bài đăng cho các bao đóng bằng mã hoạt động] (http://conceptf1.blogspot.com/2013/11/javascript-closures.html) –