function counter() {
var n = 0;
return function counter() {
n += 1;
return n;
}
}
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('counter() returns: + count);
這將打印的打印的 function counter(){ n+= 1; return n; }
而不是0計數器的內部函數的實際代碼反正是有解決它?其他控制檯語句打印正確,打印輸出1 2 3
打印代碼是因爲在調用外部函數時返回內部函數。要解決它,只需調用'count()'函數即可。 – Tushar
在那個地方打印'count',在其他地方打印'count()'。兩者不一樣。您沒有可以打印'0'的代碼。 – Amadan
這不是奇怪的,而是*函數*'count'的字符串表示形式。你還期望什麼? – Bergi