javascript 関数の気がついたこと

javascript

関数はよく、自動販売機に例えられます。現実の世界の出来事に例えると、理解しやすいですからね。自動販売機という例えはよく目にするんですが、僕自身は、『なるほどね』と思いつつ、『いまいちなんだよな』なんて思っていました。そこへ、もう一つの例え、料理の手順、つまりレシピという例えを見つけまして、ぼく的には『これ、わかりやすい』と思ったので今回はレシピバージョンで関数の働きを理解してみます。

ということでみんなが大好きな料理といえば、カレーライスですよね。カレーライスのつくり方ってしってますか?こんな感じです。

材料
じゃがいも、玉ねぎ、人参、牛肉、カレールー

つくり方
じゃがいもの皮をむいて
玉ねぎの皮をむいて
人参の皮をむいて
じゃがいもを乱切りして
玉ねぎをみじん切りして
鍋にオリーブオイルを大さじ2杯ほど注ぎ
玉ねぎを飴色になるまでゆっくりいためて…

ってことなんですが、これを「ぼくのカレーライス」という言葉で表します。用意する材料や、調理の手順をまとめているわけです。つまり、一連の処理をひとくくりにしているんです。

こうすると全体の流れがわかりますよね。それにつくり方の改良をすることもでき、「ぼくのカレーライス」を再利用(1からつくらなくていい)して容易に使うことができます。それをみんなで使うことができます。ぼくのカレーライスのレシピを教えてとか、ぼくのカレーライスが食べたいとか、ぼくのカレーライスをつくろうとか、すぐわかるでしょ!

関数ってわかってしまうと便利です。プログラム内に同じ処理を繰り返し書かずにすむわけですからね。

ぼくのカレーライスを関数式にすると

let_ぼくのカレーライス = ( じゃがいも, 玉ねぎ, 人参) => {
    じゃがいもの皮をむいて
    玉ねぎの皮をむいて
    人参の皮をむいて
    ・
    ・
    ・
};

みたいな感じです。

let_変数 = () => {
    関数内で実行する文;
};

ES2015からは上記のように書きます。この書き方を覚えたほうがいいと思います。
下記のように引数と戻り値が必要な場合があります。引数はインプット、戻り値はアウトプットと考えるといいように思います。
引数はぼくのカレーライスでは材料です。そして戻り値は出来上がったカレーライスです。

let_変数 = (引数) => {
  関数内で実行する文;
  戻り値;
};

実を言うと、関数は便利かもしれませんが、無名関数、コールバック関数、クロージャなど
たくさんの『関数』がありなかなか大変ではあります。
これからもおぼえる時に苦労した箇所を、どう考えたかなどをちょっとづつ書いていこうと思います。間違っても教本ではありませんのであしからず。

コメント

タイトルとURLをコピーしました