Javascript重构通常称为函数
Javascript refactor oftenly called function
我使用javascript已经有很长一段时间了,但是我经常想到以下代码:
function1 () {
// do stuff
...
end_function();
}
function2 () {
// do stuff
...
end_function();
}
function3 () {
// do stuff
...
end_function();
}
我知道这与 DRY 原则相冲突,但不幸的是,我不知道如何处理它来消除重复。有谁知道答案?
有很多解决方案。
一种方法是包装功能,如"我不是我"的答案,
另一种是使用高阶函数。
var end_function = function(callback){
callback.call();
// do some stuff
};
var stuff1 = function(){};
var stuff2 = function(){}:
end_function(stuff1);
end_function(stuff2);
如果将
end_function
直接编码到其他函数中,它将与 DRY 发生冲突。最终,您确实需要一些语法来调用您抽象到其自己的函数中的代码。
如果函数组合到一个 Object 中,我想你可以枚举对象的属性,并包装每个函数,但这可能只值得你拥有许多这样的函数。
var funcs = {
function1 () {
// do stuff
},
function2 () {
// do stuff
},
function3 () {
// do stuff
}
};
Object.keys(funcs).forEach(function(key) {
var orig = funcs[key];
funcs[key] = function() {
orig.apply(this, arguments);
end_function();
};
});
相关文章:
- jQuery:重构为函数
- 重构查找函数
- 将ECMAScript 6析构函数赋值(ES2015)重构为旧版本的javascript
- Javascript重构通常称为函数
- 将多个jQuery点击函数重构为一个函数
- 渲染重构会导致未定义的函数
- 如何将.show()更改为.thoggle()而不复制函数中的项(如何重构)
- ES2015中从函数到类的重构
- Javascript:重构循环之外的函数
- 重构作为属性从 es5 传递到 es6 的函数
- 将 PHP 函数的 3 小位重构为 JS - 数组,如果为空且匹配 url
- 重构以避免 setTimeout 函数
- 重构JavaScript原型构造函数中的重复代码
- 重构 Jquery 函数以使其可重用
- 重构C函数以查找O(n)中二进制树的直径到JavaScript
- 如何使用Chai/Sinon重构jasmine.any()函数
- jQuery重构了函数
- JS:将多回调函数重构为promise
- JavaScript下拉函数重构
- Javascript函数重构问题