たとえば、次のようなものがあるとします。
function hello() {console.log("hello")}
文字列値を返すJavaスクリプトで関数を作成できるようにしたい:
"console.log("hello");"
プレーンなJavaScriptでこれを行う方法はありますか?
たとえば、次のようなものがあるとします。
function hello() {console.log("hello")}
文字列値を返すJavaスクリプトで関数を作成できるようにしたい:
"console.log("hello");"
プレーンなJavaScriptでこれを行う方法はありますか?
関数のメソッドを呼び出すことで、関数宣言を含むすべてのコードを取得できますtoString()
。次に、この文字列を解析して、不要な情報を削除できます。
このようなもの:
function hello() {
console.log("hello");
}
var f = hello.toString();//get string of whole function
f = f.substring(f.indexOf('{') + 1);//remove declaration and opening bracket
f = f.substring(0, f.length - 1);//remove closing bracket
f = f.trim();//remove extra starting/eding whitespace
console.log(f);
作成された関数に直接基づく場合、代わりにリテラル文字列を作成する場合は、他の人がすでに正しい答えを提供しています。適切に引用するだけです:
function hello() { return "console.log(\"hello\")"; };
console.log("hello")
とにかく、これはページに表示されるはずです。
<html><head></head><body><script>
function hello() { return "console.log(\"hello\")"; };
document.write(hello());
</script><body></html>