グローバル変数を作成せずに、関数のカウントを呼び出すたびに1つの数値(1)を返します。毎回計算を行うために、1ずつ増やします。この例では、それがない1 2 3、、それはまた、あなたはtoStringメソッドオーバーライドしたいことがあり関数が期待以上に返す
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