什麼之間的差異(在num++
):這個javascript關閉有什麼區別?
function numberGenerator() {
// Local 「free」 variable that ends up within the closure
var num = 1;
function checkNumber() {
console.log(num);
}
num++;
return checkNumber;
}
var number = numberGenerator();
number(); // 2
number(); // 2
number(); // 2
和
function numberGenerator() {
// Local 「free」 variable that ends up within the closure
var num = 1;
function checkNumber() {
console.log(num);
num++;
}
return checkNumber;
}
var number = numberGenerator();
number(); // 1
number(); // 2
number(); // 3
爲什麼不第一碼記住num
價值?
爲什麼是2而不是1?
非常好。所以num的原因是2而不是1是因爲在數字的初始賦值時,它在返回關鍵字之前遞增。在呼叫號碼時,它只會執行並記住內部函數中的內容?! – MAA