我希望在不創建全局變量的情況下每次調用函數計數時都返回一個數字(1),並且每次我這樣做時,都會將其增加1.在此示例中,它應該返回1 2 3,這確實如此,但它也返回函數返回比預期的要多
function() {
x++
return x;
}
function counter() {
var x = 0;
return function() {
x++
return x;
}
}
var count = counter();
console.log('counter() returns: ' + count);
console.log('invoking the function returns: ' + count());
console.log('invoking the function returns: ' + count());
console.log('invoking the function returns: ' + count());
是的,如果你嘗試打印一個函數而不調用它,它通常會顯示函數本身的代碼。你期望第一個console.log行是否打印出來? – JJJ
你想'count'神奇地返回一個新的號碼,每次你提到它***沒有***你必須*調用*()使用'()'...? – deceze
您已經創建了一個全局變量'var count' – brigysl