var result = [];
for (var i = 0; i < 5; i++) {
result[i] = (function inner(x) {
// additional enclosing context
return function() {
console.log(x);
}
})(i);
}
result[1]();
////VS
var result = [];
for (var i = 0; i < 5; i++) {
result[i] = function inner(x) {
return function() {
document.write(x);
}
};
}
result[1]()();
Mọi người cho mình hỏi với ạ, mình có đọc về closure khá lâu rồi, theo được biết những free variable sẽ được “chụp” để dùng trong nested function, ở cách thứ nhất có dùng kèm self-invoking function, cách thứ 2 thì đơn giản chỉ là 1 closure không tự gọi, nhưng cách 1 thì có thể log ra x mong muốn, còn cách 2 thì không, mình xin hỏi ý kiến các bạn với ạ , cảm ơn trước ạ <3
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?