我试图在不修改原始 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;
};
})();
请注意,我使用 .apply
来调用缓存函数。这让我可以保留 this
的预期值,并将传入的任何参数作为单独的参数传递,而不管有多少。
关于javascript - 以编程方式将代码添加到 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9134686/