如何在一个万年没有动过的函数添加新的逻辑--js函数扩展

背景

对于开发而言,不管是前端还是后端,不可能永远是在新开项目上前行,与之相反更多的是在维护和迭代中 匍匐前进。
那么在迭代和维护的路上,多少人来了又去,今天突然接到一个需求需要在一个庞大的项目页面加载完成事件window.onload 里面添加一个新的逻辑的代码,这个时候,通过搜索script标签一看几个百标签,几千行代码在页面运行,每个引入的js代码都有可能包含了onload的绑定事件,每段代码的逻辑错综复杂,已经找不到文档,找不到当年的人,这个时候如何加入一个新的逻辑而不影响其他的。并且保证可以正常运行?

通常的做法和缺点

接到新需求了,没办法做呗,打开编辑器,搜索到window.onload所在到文件和函数位置,在函数内部添加如下代码:

window.onload=function(){
   
    //假设这里有500行已经在执行的代码,逻辑复杂而起臃肿
    console.log('我是onload500行代码的代表!');
    // 2020-8-3 添加新的逻辑
    console.log('执行一段新的逻辑')
  }

无可厚非,貌似需求已经完美解决了,通常在项目迭代和变迁中,找到代码修改它,来满足新需求,不改动怎么满足需求呢?然而对于古老而且庞大代码,修改代码是一件很危险对事情,往往是修复来一个bug,暗暗隐藏来一个未知的bug,因为你在测试对时候很可能没有覆盖到老业务到某个场景。而这个副作用,可能产生一个连锁反应,导致整个数据错误,还找不到bug所在。因此我们在寻找不改动原来的逻辑来增加需求代码?

较为可观的改进(保存原引用)

既然目标是不改动原来的代码添加新的逻辑代码,通过大量的思考你可能已经想到来一个方法来实现,就是把原来的方法保存起来。在新的方法中改写就可以,也就是保存原来引用不变:

   let a = function(){
   
       console
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值