中学数学622753 views
世界の国562865 views
高校日本史190258 views
いろは3002230 views
LaTeX960097 views
中学社会667895 views
Computer366970 views
中学英語810555 views
りんご203078 views
高校国語787186 views

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