なぜ clearTimeout()
に timeoutId
を渡すことができるんですか?
その答えはおそらくスコープの私の解釈が間違っていると思われるのでスコープのご教授お願いいたします。
私のスコープの解釈は...
例:
let numbers;
function a(){
numbers = 1; //a()の中だけはnumbersは1として扱える。b()ではnumbersは1と表示されない 理由スコープが違うため
console.log(numbers);
}
function b(){
console.log(numbers); //undefinedになる。グローバルスコープのnumbersが初期化されていないので
}
もし上の認識があっていると仮定した場合今回のレッスン動画の私の疑問を上のコードに当てはめてみると
let numbers;
// let timeoutId;
function a(){
numbers = 1;
console.log(numbers);
// timeoutId = setTimeout(() => {
// countUp();
// }, 10);
}
function b(){
console.log(numbers);
// clearTimeout(timeoutId);
}
a(); // 1
b(); // undefinedになる
なぜ function a
で代入された timeoutId
が function b
内で使えるのですか?
なぜスコープが違うにも関わらずローカル変数が別のスコープで使えているんですか?
ご教授よろしくお願いいたします。
この回答を見るにはプレミアムプランへの登録が必要です
プレミアムプランとは?