如何在Javascript中重写函数时减少冗余代码
How to reduce redundant codes when overwriting function in Javascript?
我必须在我的项目中覆盖一个函数。下面是original.js
文件:
lib.func = function(a){
//original logic
}
这是A.html
我覆盖了func
函数:
<script src='original.js'></script>
<script>
var original = lib.func;
lib.func = function(a){
//overwrite to modify a
a.replace(c, 'new');
original(a);//call original function
}
</script>
这是B.html
,我将a
替换为另一个字符串d:
<script src='original.js'></script>
<script>
var original = lib.func;
lib.func = function(a){
//overwrite to modify a
//***********Different replacement source********
a.replace(d, 'new');
original(a);//call original function
}
</script>
我的问题是:有没有一种方法把这个覆盖逻辑在一个文件,我可以在a.html
和b.html
使用它?
您可以将其添加到原始函数中,并传递一个字符串参数。您可以通过在字符串参数
上调用if
来执行原始函数,而不需要额外的内容。lib.func = function(a, b){
if (b) a.replace(b, 'new');
// original logic
}
这样,您可以在任何地方重用该方法,并根据需要动态选择替代方法。EDIT:只是为了清楚,如果你不传递第二个参数,那么方法将完全像以前一样执行,但是当你传递第二个参数时,if语句将捕获它并替换
相关文章:
- 缓存的最佳实践.避免冗余缓存
- UMD:正在分配给模块,导出冗余
- 如何更正阵列中的这种冗余
- Regex删除涉及零或一的冗余乘法/除法
- 删除方法中的冗余代码
- 多选择器冗余
- 简化冗余jquery's代码
- 排列具有相同数据的多个对象(减少冗余)
- Meteor模板-继承或外包事件以避免代码冗余
- HTML-减少HTML代码冗余
- 如果我两次使用相同的反应/冗余组件,它们会共享状态吗?
- ExtJS - 如何创建可重用的函数以避免代码冗余
- 避免模板代码冗余
- 如何重构用于初始化和更新的冗余代码
- highchart最大限度地减少代码冗余
- 如何在Javascript中重写函数时减少冗余代码
- Jquery内容滑块,如何复制无冗余代码
- 通过算法将冗余代码优化为循环
- 如何在使用服务器端和javascript代码时避免冗余的HTML代码
- 自定义冗余复选框输入Jquery代码