JavaScript | 関数はオブジェクト

JavaScript JavaScript
スポンサーリンク

主な内容の要点

JavaScriptでは「関数」も特別な存在ではなく、オブジェクトの一種として扱われます。そのため、関数は「変数に代入できる」「別の変数にコピーできる」「引数として渡せる」といった柔軟な使い方が可能です。


初心者が押さえるべきポイント

  • 関数はオブジェクト
    • function で定義すると、その関数名は「関数オブジェクトを代入した変数」として扱われます。
    • つまり「関数名 = 関数オブジェクト」という関係になります。
  • 関数を変数に代入できる
function calcTotal(x, y) {
  return x + y;
}
let myFunc = calcTotal;
console.log(myFunc(10, 8)); // 18
JavaScript

calcTotalmyFunc は同じ関数を参照しているので、どちらでも呼び出せます。

  • 関数名に別の値を代入できる
function calcTotal(x, y) {
  return x + y;
}
calcTotal = "Hello";
console.log(calcTotal); // Hello
JavaScript

→ 関数名はただの変数なので、文字列など別の値を入れることも可能です(ただし通常はやりません)。

  • 無名関数(匿名関数)を変数に代入できる
let calcTotal = function(x, y) {
  return x + y;
};
console.log(calcTotal(10, 8)); // 18
JavaScript

→ 名前を持たない関数を直接変数に代入する書き方。これを「無名関数」や「関数リテラル」と呼びます。

  • 関数を引数として渡せる
    • 関数がオブジェクトなので、他の関数に「処理を渡す」ことができます。
    • これが「コールバック関数」や「イベント処理」でよく使われます。

なぜこの「関数=オブジェクト」という考え方が大切?

  • 関数を変数に代入できる → 柔軟に関数を渡したり再利用したりできる(例えば、関数を引数として渡す、関数を戻り値として返すなど)
  • 名前に縛られず、変数やプロパティとして扱える → よりモダンなコード(コールバック、関数式、無名関数、アロー関数など)を書く準備になる
  • オブジェクトの性質(プロパティを持ったり他の変数と参照を共有したり)を理解することで、JavaScriptの深い挙動(クロージャ、this、参照/値渡しなど)を学びやすくなる

初心者へのアドバイス

  • 「関数はオブジェクト」という考え方を理解すると、JavaScriptの柔軟さが見えてきます。
  • 特に「関数を変数に代入できる」「関数を引数に渡せる」という性質は、イベント処理や非同期処理で必須の知識です。
  • まずは「関数も値の一種」と覚えておくとスムーズです。

このページは「関数=オブジェクト」という基本を押さえる内容なので、次のステップとして「コールバック関数」や「無名関数(アロー関数)」に進むと理解が深まります。

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