1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JSにおいて関数はオブジェクト扱いされる

Last updated at Posted at 2024-06-27

前提

筆者は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));

これで正しく出力されるコードになった。

1
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?