利用閉包(Closure)的兩個例子
1. 用閉包記憶變數:
function f(x) {
var temp = x;
return function(x) {
temp += x;
console.log(temp);
};
}
var a = f(50);
a(5); // 55
a(10); // 65
a(20); // 85
2.用閉包解決問題:
for (var i = 0; i < 5; i++) {
(function(i) {
setTimeout(function() {
console.log(i); // 0, 1, 2, 3, 4
}, i * 1000);
})(i);
}
解決for loop處理速度 >> setTimeout()處理速度
function f(x) {
var temp = x;
return function(x) {
temp += x;
console.log(temp);
};
}
var a = f(50);
a(5); // 55
a(10); // 65
a(20); // 85
2.用閉包解決問題:
for (var i = 0; i < 5; i++) {
(function(i) {
setTimeout(function() {
console.log(i); // 0, 1, 2, 3, 4
}, i * 1000);
})(i);
}
解決for loop處理速度 >> setTimeout()處理速度
留言
張貼留言