在另一个文件中给 function增加内容该怎么写

test.html 里调用到2个js文件 a.js和b.js:

a.js 文件里有个

function test(){
    console.log(1);
}

现在想在b.js里给 test function 增加一个

console.log(2);

目标要做到无论在哪里调用test()都要输出1和2,该怎么写啊

阅读 3.2k
2 个回答

楼上没问题,你问的问题可以用装饰者模式来解决。一般涉及到你这样的需求都要保证在尽量不动到源代码的情况下进行操作,我们还可以这样:

Function.prototype.before = function(prevFn){
    var _self = this;
    return function(){
        prevFn.call(this,arguments);
        return _self.call(this,arguments);
    };
};

var newFn = test.before(function(){console.log(2);});
newFn();

往后修饰也是同样道理
var rawTest = test;
test=function(){
    rawTest();
    console.log(2);
}

//
test();

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题