Javascript 如何使用相同的参数执行多个函数
我有一个对象和3个方法,现在执行它的代码如下所示:Javascript 如何使用相同的参数执行多个函数,javascript,Javascript,我有一个对象和3个方法,现在执行它的代码如下所示: var cmpAmount = 50, addLessAmount = 6, addMoreAmount = 14; priceChanger.changeSmallPrice(cmpAmount, addLessAmount, addMoreAmount); priceChanger.changeBigPrice(cmpAmount, addLessAmount, addMoreAmount); priceChanger.ch
var cmpAmount = 50,
addLessAmount = 6,
addMoreAmount = 14;
priceChanger.changeSmallPrice(cmpAmount, addLessAmount, addMoreAmount);
priceChanger.changeBigPrice(cmpAmount, addLessAmount, addMoreAmount);
priceChanger.changeTooltipPrice(cmpAmount, addLessAmount, addMoreAmount);
因此,如果参数相同,如何执行它,并向它们发送参数。
我的意思是如何更改代码使其更少。可能使用对象存储所有属性:
var args = {cmpAmount:50,addLessAmount: 6, addMoreAmount: 14};
priceChanger.changeSmallPrice(args);
priceChanger.changeBigPrice(args);
priceChanger.changeTooltipPrice(args);
我认为最好创建一个方法“changeAllPrices(cmpAmount,addLessAmount,addmoreamunt)”您可以使用一个简单的助手函数,例如下面的函数,用一组参数调用每个函数。我相信一些javascript库包含一个类似的组合函数,名为
composeArgs
function execute(fns, args) {
for(var i = 0; i < fns.length; i++) {
fns[i].apply(this, args);
}
}
您的代码可能有问题,我想没有遵循DRY原则。
priceChanger.changeAllPrices
?在对象中创建一个函数来执行其他三个函数如何,只需传递参数数组即可。
var cmpAmount = 50,
addLessAmount = 6,
addMoreAmount = 14;
execute([priceChanger.changeSmallPrice, priceChanger.changeBigPrice, priceChanger.changeTooltipPrice],
[cmpAmount, addLessAmount, addMoreAmount]);