0

たとえば、次のようなものがあるとします。

function hello() {console.log("hello")}

文字列値を返すJavaスクリプトで関数を作成できるようにしたい:

"console.log("hello");"    

プレーンなJavaScriptでこれを行う方法はありますか?

4

3 に答える 3

1

関数のメソッドを呼び出すことで、関数宣言を含むすべてのコードを取得できます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);

これが実際の例です

于 2013-09-24T15:46:32.947 に答える
0

作成された関数に直接基づく場合、代わりにリテラル文字列を作成する場合は、他の人がすでに正しい答えを提供しています。適切に引用するだけです:

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>
于 2013-09-24T15:51:32.783 に答える