为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

DIEA 2019-12-13 08:58:16
我试图自定义现有的JS库而不修改原始JS代码。这段代码将加载一些我可以访问的外部JS文件,而我想做的就是更改原始文件中包含的功能之一,而无需将整个内容复制并粘贴到第二个JS文件中。因此,例如,禁区JS可能具有以下功能:var someFunction = function(){    alert("done");}我希望能够以某种方式在该函数中追加或添加一些JS代码。原因主要是在原始的不可触摸的JS中,该功能非常庞大,如果该JS得到更新,则我用它覆盖的功能将过时。我不确定这是否可行,但我想我会检查一下。
查看完整描述

3 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

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


查看完整回答
反对 回复 2019-12-13
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

首先将实际函数存储在变量中。


var oldFunction = someFunction;

然后定义自己的:


someFunction = function(){

  // do something before

  oldFunction();

  // do something after

};


查看完整回答
反对 回复 2019-12-13
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

您可以使一个函数调用您的代码,然后再调用该函数。


var old_someFunction = someFunction;

someFunction = function(){

    alert('Hello');

    old_someFunction();

    alert('Goodbye');

}


查看完整回答
反对 回复 2019-12-13
  • 3 回答
  • 0 关注
  • 396 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号