高校国語788848 views
高校倫理1441553 views
中学理科1631666 views
ヒストリア292018 views
Computer368747 views
英語614821 views
中学社会669191 views
数学講師2894363 views
高校物理160808 views
LaTeX963205 views
Help
Tools

English

JavaScript の関数のコードを文字列として表示する

JavaScript の関数を文字列として出力する方法。下コードのとおり toString を使う。

function myFunction(a, b) {
	return a + b;
}

const text = myFunction.toString()

console.log(text);
// function myFunction(a, b) {
//         return a + b;
// }

文字列から関数をつくる

eval という危険な関数を使うと、文字列から関数を生成できる。

function greet(name) {
	return `Hello, ` name
}

const evalGreet = eval(`(` + fnString + `)`)

console.log(evalGreet("太郎"))
// Hello, 太郎!

カッコで囲むのがポイント。カッコで囲まないとエラーが起きる。

function greet(name) {
	return `Hello, ` name
}

const fnString = greet.toString()
const evalGreet = eval(fnString)

// TypeError: evalGreet is not a function

正解はこちら。

function greet(name) {
	return `Hello, ` name
}

const fnString = greet.toString()
const evalGreet = eval(`(` + fnString + ``)

// TypeError: evalGreet is not a function