前提
筆者はJSにはあまり精通しておらず、pythonが少し分かる程度(for文とかif文、関数)。
今回はx,y,zの和を出力する関数で気づいたことを共有。
JSで最初に書いたもの
fomula.js
const answer = (x, y, z) => {
return x + y + z;
};
answer(3, 4, 5);
console.log(answer);
出力結果
[Function: answer]
あれ?しっかり引数も渡してるしなぜ、answerが12にならないのか分からない。
出力結果が文字列な時点で、何かおかしい。JavaScriptにおける関数の扱い方を調べてみた。
結果
このサイトから、JavaScriptでは関数はオブジェクト扱いされることが分かった。つまり、
console.log(answer)は関数を呼び出したときの処理を出力しているに過ぎなかった。
下記のコードで引数を渡せていると勘違いしてしまっていた,,,
fomula.js (抜粋)
answer(3, 4, 5);
console.log(answer)
fomula.js
const answer = (x, y, z) => {
return x + y + z;
};
console.log(answer(3,4,5));
これで正しく出力されるコードになった。