Javascript 可以获取文本形式的函数吗?
Javascript 可以获取文本形式的函数吗? 我的想法就像 eval() 的逆。
function derp() { a(); b(); c(); }
alert(derp.asString());
结果类似于“a(); b(); c();”
它存在吗?
Can Javascript get a function as text?
I'm thinking like the inverse of eval().
function derp() { a(); b(); c(); }
alert(derp.asString());
The result would be something like "a(); b(); c();"
Does it exist?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
更新为在下面的评论中添加警告 CMS、Tim Down、MooGoo:
最接近的东西可以调用
.toString()< /code>
在函数上获取完整的函数文本,如下所示:
您可以尝试一下这里,但需要注意一些警告:
.toString()
依赖于实现(此处规范 15.3 节.4.2)(function() { x=5; 1+2+3; }).toString()
==function() { x=5; }).toString()
==function() { x=5; 1+2+3; }).toString() }
Updated to include caveats in the comments below from CMS, Tim Down, MooGoo:
The closest thing available to what you're after is calling
.toString()
on a function to get the full function text, like this:You can give it a try here, some caveats to be aware of though:
.toString()
on function is implementation-dependent (Spec here section 15.3.4.2)(function() { x=5; 1+2+3; }).toString()
==function() { x=5; }