例如,如果我有这样的事情:
function hello() {console.log("hello")}
我希望能够在java脚本中创建一个返回字符串值的函数:
"console.log("hello");"
有没有办法用普通的javascript做到这一点?
答案 0 :(得分:1)
如果您执行hello.toString()
,则会输出"function hello() {console.log("hello")}"
答案 1 :(得分: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);
答案 2 :(得分: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>