javascript - 以编程方式将代码添加到 javascript 函数

标签 javascript merge append user-defined-functions prepend

我试图在不修改原始 JS 代码的情况下自定义现有的 JS 库。这段代码加载到一些我有权访问的外部 JS 文件中,我想做的是更改原始文件中包含的函数之一,而不是将整个文件复制并粘贴到第二个 JS 文件中。
因此,例如, off limits JS 可能具有这样的功能:

var someFunction = function(){
    alert("done");
}

我希望能够以某种方式将一些 JS 代码 append 或添加到该函数中。原因主要是原始的不可触及的JS中功能非常庞大,如果该JS更新,我用它覆盖的功能将过时。

我不完全确定这是否可行,但我想我会检查一下。

最佳答案

如果 someFunction 是全局可用的,那么您可以缓存该函数,创建您自己的函数,然后调用它。

如果这是原来的...

someFunction = function() {
    alert("done");
}

你会这样做...

someFunction = (function() {
    var cached_function = someFunction;

    return function() {
        // your code

        var result = cached_function.apply(this, arguments); // use .apply() to call it

        // more of your code

        return result;
    };
})();

Here's the fiddle


请注意,我使用 .apply 来调用缓存函数。这让我可以保留 this 的预期值,并将传入的任何参数作为单独的参数传递,而不管有多少。

关于javascript - 以编程方式将代码添加到 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9134686/

相关文章:

javascript - 无法在 Blazor 服务器端应用程序中使用 OnAfterRenderAsync 中的 JsRuntime.InvokeAsync

svn - 您如何获得 Subversion 差异摘要以忽略 mergeinfo 属性?

append - 行绑定(bind) Julia 数据帧

javascript - 按钮和选择器在 AngularJS 中无法正确通信

javascript - 将 jQuery tablesorter 与 thead 结合起来 : How to assign final html output?

delphi - 在其他 PNG 上绘制 PNG 图像

mysql - 合并 CSV append header

Java : add elements in linked list incrementally

javascript - 执行 alt-tab 时 Alt keyup 丢失

python - 用python合并两个数据框