JavaScript/Function/prototype/name
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
プロパティは空の文字列を返します。
脚註
- ↑ これは、関数の名前を確認するために使用されます。