javascript - javascript中有没有一种方法可以获取给定函数的定义作为字符串,以便可以修改和评估?

标签 javascript function eval

我正在尝试在新的上下文中评估一个函数,即包含范围中不存在的某个已定义单词的函数。如果我将函数定义为字符串,那就很容易了,但我想提供使用常规函数列表来执行此操作的能力,如下所示:

var funcs = {
  first: function() { return 'yayaya'; },
  second: function() { return 'okokok' + keyword; },
  ...
};

然后:

function Thing () {};

for (func in funcs) {
  var definition = funcs[func].definition();
  var keyword = "NOW I AM THE KEYWORD";
  var actual_func_with_keyword_defined = eval(definition);
  Thing.prototype[func] = actual_func_with_keyword_defined;
}

我缺少的是定义()函数或等效函数,它返回函数的源。这在 JavaScript 中可能吗?

最佳答案

尝试简单地取出.definition()

关于javascript - javascript中有没有一种方法可以获取给定函数的定义作为字符串,以便可以修改和评估?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1430761/

相关文章:

javascript - 使用转义正则表达式特殊字符进行测试时字符串相等性失败

javascript - 如何在 JavaScript 中解包 promise 的值

javascript - 如何使用单选按钮更改 <td> 的颜色?

javascript 字符串作为命令行,为什么不使用 eval()?

Perl 信号处理程序和评估

javascript - 如果使用 "async/await"而不是 "then and catch",此代码会是什么样子?

javascript - JavaScript 函数方法

.net - VB.NET函数以字符串形式获取属性名称

r - 在 R 函数中修改变量

ruby - 为 `class << self` 内的 eval 提供回溯的正确方法是什么?