中学理科1634014 views
いろは3027485 views
高校日本史191091 views
りんご221429 views
MathPython502508 views
小学算数1204208 views
中学英語814050 views
高校生物553405 views
小学理科721990 views
高校国語790249 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