中学理科1626729 views
高校物理158371 views
数学講師2856326 views
中学社会667231 views
教育148958 views
高校国語785873 views
高校生物549999 views
高校化学2914160 views
小学理科717454 views
小学算数1195447 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