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

我试图自定义现有的JS库而不修改原始JS代码。这段代码将加载一些我可以访问的外部JS文件,而我想做的就是更改原始文件中包含的功能之一,而无需将整个内容复制并粘贴到第二个JS文件中。

因此,例如,禁区JS可能具有以下功能:


var someFunction = function(){

    alert("done");

}

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


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


DIEA
浏览 397回答 3
3回答

慕标5832272

如果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,并可以将传入的所有参数作为单个参数传递,而不管有多少个参数。

慕姐4208626

首先将实际函数存储在变量中。var oldFunction = someFunction;然后定义自己的:someFunction = function(){  // do something before  oldFunction();  // do something after};

慕桂英3389331

您可以使一个函数调用您的代码,然后再调用该函数。var old_someFunction = someFunction;someFunction = function(){    alert('Hello');    old_someFunction();    alert('Goodbye');}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript