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?

More than 1 year has passed since last update.

javascriptの無名関数について調べてみた!

Posted at

JavaScriptの無名関数について

JavaScriptにおいて、無名関数(または匿名関数)は、名前を持たない関数のことを指す。
関数を変数に代入するためや、他の関数の引数として渡すために利用する。

無名関数の基本構文

無名関数の書き方

const myFunction = function() {
  // 関数の処理内容
};

このような無名関数は変数 myFunction に代入して、後からこの変数を通じて関数を呼び出すことができる。

無名関数の利用例

1. 変数に代入して利用する

const greet = function(name) {
  return `こんにちわ、 ${name}!`;
};

const greetingMessage = greet('太郎さん');
console.log(greetingMessage); 

// Output: こんにちわ、 太郎さん!

2. 関数の引数として利用する

function executeFunction(func) {
  const result = func();
  console.log('関数を実行した結果:', result);
}

executeFunction(function() {
  return 'これは実行される無名関数です!';
});

// Output: 関数を実行した結果: これは実行される無名関数です!

上記の例では、無名関数を引数として受け取る関数 executeFunction を定義して、それを呼び出すことで無名関数を実行している。

アロー関数(Arrow Function)との比較

無名関数はアロー関数(Arrow Function)と似ていますが、いくつかの違いがある。

主な違い

構文:

  • 無名関数: 使用するのは function です。
  • アロー関数: 使用するのは => です。

this の挙動:

  • 無名関数: this は呼ばれるたびに変化する。
  • アロー関数: this は定まった親のコンテキストを参照する。

戻り値:

  • アロー関数: 1つの式の結果が自動的に返される。
  • 無名関数: : return を使って戻り値を返す。

arguments オブジェクト:

  • 無名関数: arguments オブジェクトを使用できる。
  • アロー関数: arguments オブジェクトを使用できない。

補足

arguments オブジェクトとは

ChatGPT

JavaScriptの関数内で利用できる特別なオブジェクトであり、関数が呼び出された際に渡された引数にアクセスするために使用します。このオブジェクトは関数内で自動的に利用可能で、引数の値や引数の数にアクセスすることができます。

サンプルコード

function example(a, b) {
  console.log(arguments[0]); // apple
  console.log(arguments[1]); // banana
}

example('apple', 'banana');

アロー関数の基本構文

const myArrowFunction = () => {
  // 関数の処理内容
};

まとめ

無名関数は、関数を変数に代入したり、関数の引数として利用する際に役立つことを知れました!
アロー関数との違いも理解することができた。

1
0
0

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?