Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

関数かんすうもオブジェクトである

皆さんにとって、「関数かんすうもオブジェクトである」という考え方は、JavaScriptのかべひとつになるかもしれません。

これを理解してもらうために、関数かんすうは『動くおもちゃ』が入った箱だ」 というたとえを使って説明します。


JavaScriptの関数かんすうは「持ち運べる箱」

普通のプログラミング言語では、関数かんすうは「命令」です。でも、JavaScriptでは関数かんすう「オブジェクト(モノ)」 です。

箱の中に「仕事のやりかた」が書かれた紙が入っているイメージです。箱なので、人にあげたり、受け取ったりできます。これを 「第一級関数かんすう と呼びます。


1. 変数へんすう代入だいにゅうできる(箱に名前をつける)

関数かんすうという箱に、新しい名前をつけて別の場所に置くことができます。

// 1. 「挨拶をする」という関数(かんすう)を作る
const hello = function() {
  console.log("こんにちは!");
};

// 2. helloという箱を、別の変数(へんすう)にコピーする
const sayHello = hello;

// 3. 新しい名前で実行できる
sayHello(); // "こんにちは!"


2. 引数ひきすうにできる(箱をプレゼントする)

関数かんすうを、別の関数かんすうに「材料」として渡すことができます。これを 「コールバック関数かんすう と言います。

留学生へのれいえ: 「料理ロボット」に、「切る」という仕事をプレゼントするようなものです。

// 「実行ボタン」という関数(かんすう)
function pushButton(task) {
  console.log("ボタンを押しました。");
  task(); // 渡された関数(かんすう)を実行する
}

const clean = function() {
  console.log("掃除をします!");
};

// 掃除という箱を引数(ひきすう)として渡す
pushButton(clean); 


3. 返り値にできる(箱を作って返す)

関数かんすうを実行した結果として、新しい「関数かんすうの箱」をもらうことができます。

留学生へのたとえ: 「おもちゃの工場」に頼んで、自分だけの「特別なおもちゃ(関数かんすう)」を作ってもらうイメージです。

function makeRobot(name) {
  // 新しい関数(かんすう)を作って、外に返す
  return function() {
    console.log("私は" + name + "ロボットです。");
  };
}

const dora = makeRobot("ドラ");
dora(); // "私はドラロボットです。"


留学生へのまとめ(青空文庫形式)

JavaScriptでは、関数かんすうは単なる「動き」ではありません。 それは、名前をつけたり、誰かに渡したりできる 「大切なモノ(オブジェクト)」 です。

  1. 変数へんすうへの代入だいにゅう: 箱を棚に置くこと。
  2. 引数ひきすう: 箱を友達に貸してあげること。
  3. 返り値: 箱を新しく作って届けてもらうこと。

この「箱をやり取りする」という考え方ができるようになると、JavaScriptがもっと楽しくなりますよ!


いかがでしょうか。関数かんすうを「命令」ではなく「持ち運べるオブジェクト」として見せることがポイントです。