javascript - 在运行时将代码插入到函数体中

标签 javascript code-injection

来自 Java,具有字节码编辑经验,我想知道是否可以使用 Javascript 在运行时更改函数体。

对于这个问题,我们以下面的代码为例:

function myFunction(paramA, paramB) {
    console.log('a', paramA);

    console.log('b', paramB);
}

在运行时,我希望能够将正文更改为:

function myFunction(paramA, paramB) {
    console.log('a', paramA);
    console.log('hello inserted world');
    console.log('b', paramB);
}

如果这是可能的,我知道它将增加代码库的复杂性。因此,如果可能的话,在小组项目中(或者最终必须有人接管时)应该避免这种情况,但这不是现在的问题。

真正的问题是,这是否可能(或者可以近似)以及如何实现?我不是在寻找代码示例,伪代码就足够了!

一些要求/规则/注释:

  • 该示例包含函数声明,但函数表达式也可以接受。
  • 该函数可能会被完全覆盖;现有的引用资料可能会丢失。
  • 整个应用程序将被缩小,答案应该考虑到这一点。
  • 插入的代码必须紧接在第一个 console.log 之后插入,无论正文中是否存在任何其他代码。
  • 该函数必须可通过 myFunction(a, b) 执行。

最佳答案

我想这取决于代码的来源。总有 JavaScript 的 eval()声明,但由于可能存在安全漏洞,通常(强烈)不鼓励这样做。请参阅this article .

关于javascript - 在运行时将代码插入到函数体中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28984047/

相关文章:

javascript - font-face作为div背景图片可能吗?

javascript - AJAX POST 浏览器历史记录

javascript - 主干模型未传递给 View

java - EJB 事务 - 静态上下文 - 坏主意?

javascript - 将对象重置为空对象,在非线性时间内保持引用完好无损

javascript - 完成后是否需要删除 FileReader() 的事件监听器?

javascript - 需要帮助使用 js 制作按钮然后将其链接到函数和 css 代码

Java 6 - 注释处理器和代码添加

php - 下拉选择字段是否容易受到任何类型的注入(inject)

java - Spring 注入(inject)使用静态方法调用的实例创建的对象