JavaScript/Function/prototype/toString
表示
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()メソッドは、関数のソースコードを文字列として生成するため、パフォーマンスに影響を与える可能性があります。頻繁に使用する場合は注意が必要です。
脚註
[編集]- ^ これは、関数のソースコードを文字列として表現するために使用されます。
外部リンク
[編集]