よし、ではこのコードの中で result
に何が入るのかを、完全に頭の中で流れが見えるように、図解するような説明をします。
result
には、getData()
の中の callback(...)
で渡された値がそのまま入ります。
つまり、1秒後に呼ばれるこの行:
callback("データ取得完了");
この "データ取得完了"
が、最終的に result
に入る。
まず全体コードをもう一度並べます:
function getData(callback) {
setTimeout(() => {
callback("データ取得完了");
}, 1000);
}
getData(result => {
console.log(result); // → 1秒後に "データ取得完了"
});
function getData(callback) {
// callback は関数。呼び出す側が渡す。
setTimeout(() => {
callback("データ取得完了"); // ← この引数が result になる
}, 1000);
}
ここでは setTimeout
を使って、1秒後に callback()
を呼び出すように設定している。
この時、callback
に渡している "データ取得完了"
が後で使われる。
getData(result => {
console.log(result);
});