JavaScript/Function/prototype/name

カテゴリ:Book:JavaScript#Function/prototype/name%20

Function.prototype.name は、関数の名前を表すプロパティです。このプロパティは、関数が定義された際に使用された変数名やプロパティ名を反映しますが、意味的な意味は持ちません。匿名関数の場合、このプロパティは空の文字列を返します[1]

構文

func.name
  • func: 名前を確認する対象の関数。

関数の name プロパティを確認するプログラム

以下のプログラムは、Function.prototype.name を使用して関数の名前を確認します。

function greet() {
  console.log('Hello!');
}

console.log(greet.name); // "greet"

このプログラムでは、greet 関数の名前を確認しています。greet 関数は名前付き関数であるため、greet.name"greet" を返します。

匿名関数の name プロパティを確認するプログラム

以下のプログラムは、匿名関数の name プロパティを確認します。

const greet = function() {
  console.log('Hello!');
};

console.log(greet.name); // "greet"

このプログラムでは、匿名関数の名前を確認しています。匿名関数が変数に代入されている場合、その変数名が name プロパティとして反映されます。

アロー関数の name プロパティを確認するプログラム

以下のプログラムは、アロー関数の name プロパティを確認します。

const greet = () => {
  console.log('Hello!');
};

console.log(greet.name); // "greet"

このプログラムでは、アロー関数の名前を確認しています。アロー関数が変数に代入されている場合、その変数名が name プロパティとして反映されます。

注意点

  • 名前の由来: name プロパティは、関数が定義された際に使用された変数名やプロパティ名を反映します。ただし、このプロパティは意味的な意味を持たず、デバッグやログ出力に役立つことが主な目的です。
  • 匿名関数: 匿名関数で変数に代入されていない場合、name プロパティは空の文字列を返します。
  • 変更不可: name プロパティは変更不可(Writable: false)であり、列挙不可(Enumerable: false)です。ただし、設定可能(Configurable: true)です。
  • デフォルト値: 関数が名前を持たない場合や、名前を推論できない場合、name プロパティは空の文字列を返します。

脚註

  1. これは、関数の名前を確認するために使用されます。

外部リンク

カテゴリ:Book:JavaScript#Function/prototype/name%20 カテゴリ:JavaScript
カテゴリ:Book:JavaScript カテゴリ:JavaScript カテゴリ:Pages using the JsonConfig extension