利用閉包(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()處理速度

留言

熱門文章