如何使用相同的参数js执行多个函数

时间:2014-02-02 19:55:01

标签: javascript

我有一个对象和3个方法,现在我执行它的代码如下所示:

var cmpAmount = 50,
    addLessAmount = 6,
    addMoreAmount = 14;
priceChanger.changeSmallPrice(cmpAmount, addLessAmount, addMoreAmount);
priceChanger.changeBigPrice(cmpAmount, addLessAmount, addMoreAmount);
priceChanger.changeTooltipPrice(cmpAmount, addLessAmount, addMoreAmount);

所以,如果参数是相同的,如何执行它三个发送参数。 我的意思是如何更改我的代码以减少它。

3 个答案:

答案 0 :(得分:1)

我认为最好制作一个方法“changeAllPrices(cmpAmount,addLessAmount,addMoreAmount)”

答案 1 :(得分:0)

可能使用对象存储所有属性:

var args = {cmpAmount:50,addLessAmount: 6, addMoreAmount: 14};

priceChanger.changeSmallPrice(args);
priceChanger.changeBigPrice(args);
priceChanger.changeTooltipPrice(args);

答案 2 :(得分:0)

您可以使用简单的辅助函数(如下面的函数)使用参数数组调用每个函数。我相信一些javascript库包含一个名为composeArgs

的类似组合函数
function execute(fns, args) {
   for(var i = 0; i < fns.length; i++) {
       fns[i].apply(this, args);
   }
}

然后调用execute

var cmpAmount = 50,
    addLessAmount = 6,
    addMoreAmount = 14;

execute([priceChanger.changeSmallPrice, priceChanger.changeBigPrice, priceChanger.changeTooltipPrice], 
        [cmpAmount, addLessAmount, addMoreAmount]);