【发布时间】:2012-01-11 19:33:09
【问题描述】:
假设我有一个 js 函数。从程序的其他点开始,我想运行它的代码,而不是它的 return 语句。取而代之的是,我想运行其他一些引用原始函数范围内变量的返回语句。
除了加载函数源、替换 return 并在结果上使用 eval 之外,还有其他方法吗?原件的最小修改是可能的,尽管它不应该通过添加例如影响原件的性能。一个额外的函数调用。
【问题讨论】:
-
对不起,在手机上,虽然我可以在一个小时左右发布一些。
-
#1 - 您可以使用 AOP 更改返回,但您将无法访问内部变量。 #2 - 您可以在原始函数的 .toString() 上使用新函数,插入新代码。您将拥有完全访问权限,但这被视为垃圾代码。
标签: javascript metaprogramming