関数をわたす

INPUT · スライド

関数は値だと思い出す

01 / 03

( ) を付けるかどうか

この章の主役は関数を値として扱うこと。まずはそこを思い出しておこう。

  • hello … 関数そのもの。持ち運べる
  • hello() … 関数を動かした結果

() を付けずに console.log へ渡すと function と表示される。「これは関数だよ」という意味だよ。

const hello = () => {  console.log("やあ");};console.log(hello);hello();

実行結果

function
やあ

02 / 03

すでに関数を渡していた

前の章で forEachmap に書いたのを思い出してみよう。渡していたのは関数そのもので、() は付けていなかったよね。

つまり「関数を引数として渡す」ことは、もう自分の手でやっていたんだ。

const nums = [1, 2, 3];const twice = (n) => {  return n * 2;};console.log(nums.map(twice));

実行結果

[2, 4, 6]

03 / 03

この章でやること

前の章では、forEachmap というもう用意されているものに関数を渡した。渡された関数がいつ呼ばれるかは、メソッドの中に隠れていて見えなかった。

この章では立場を入れ替える。関数を受け取る側を自分で書くんだ。

  • 引数で関数を受け取って呼ぶ書き方
  • 渡した関数がいつ動くのかという流れ
  • 呼ぶときに値を渡すしくみ

まずは復習から。ここまでの道具で解ける問題を並べたよ。