JavaScript/Function/prototype/toString

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

Function.prototype.toString() は、関数のソースコードを表す文字列を返すメソッドです。このメソッドは、関数の定義を文字列として取得するために使用されます[1]

構文

func.toString()
  • func: ソースコードを取得する対象の関数。

関数のソースコードを取得するプログラム

以下のプログラムは、Function.prototype.toString() を使用して関数のソースコードを取得します。

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

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

このプログラムでは、greet 関数のソースコードを文字列として取得しています。toString() メソッドは、関数の定義をそのまま文字列として返します。

組み込み関数のソースコードを取得するプログラム

以下のプログラムは、Function.prototype.toString() を使用して組み込み関数のソースコードを取得します。

console.log(Array.toString());
// "function Array() { [native code] }"

console.log(Date.toString());
// "function Date() { [native code] }"

console.log(String.toString());
// "function String() { [native code] }"

このプログラムでは、組み込み関数のソースコードを文字列として取得しています。組み込み関数の場合、toString() メソッドは [native code] という文字列を返します。

アロー関数のソースコードを取得するプログラム

以下のプログラムは、Function.prototype.toString() を使用してアロー関数のソースコードを取得します。

const add = (a, b) => a + b;

console.log(add.toString());
// "(a, b) => a + b"

このプログラムでは、アロー関数のソースコードを文字列として取得しています。toString() メソッドは、アロー関数の定義をそのまま文字列として返します。

注意点

  • ソースコードの正確性: toString() メソッドは、関数のソースコードを正確に返すことを保証しません。特に、JavaScript エンジンによっては、関数のソースコードを最適化や変換する場合があります。
  • ネイティブコード: 組み込み関数やネイティブコードで実装された関数の場合、toString() メソッドは [native code] という文字列を返します。
  • フォーマット: toString() メソッドは、関数の定義を人間が読める形式で返しますが、そのフォーマットは JavaScript エンジンに依存する場合があります。
  • パフォーマンス: toString() メソッドは、関数のソースコードを文字列として生成するため、パフォーマンスに影響を与える可能性があります。頻繁に使用する場合は注意が必要です。

脚註

  1. これは、関数のソースコードを文字列として表現するために使用されます。

外部リンク

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