この関数は完全に独立して2回呼び出されるとします。したがって、2つの関数fn()
に対してタイムアウトコールバックが作成され、両方の関数のクロージャにはcalled
という変数があります。両方のクロージャで2回呼び出されるクロージャ内の変数の値は同じですか?
これは同じ変数か完全に独立した2つの変数ですか?どうして?
function createFunctionWithTimeout(callback, opt_timeout) {
var called = false;
function fn() {
if (!called) {
called = true;
callback();
}
}
setTimeout(fn, opt_timeout || 5000);
return fn;
}