-2

我有以下这些功能:

    function func1(){
        var var1 = $('.someclass_a').val();
        var var2 = var1 * some_number1;
        var var3 = var2 * some_number2;
        $('.someclass1').html(var2);
        $('.someclass2').html(var3);
    }

    function func2(){
        var var1 = $('.someclass_b').val();
        var var2 = var1 * some_number1;
        var var3 = var2 * some_number2;
        $('.someclass3').html(var2);
        $('.someclass4').html(var3);
    }

如何在上面的所有函数中同时提取 var2 和 var3 以便我可以将它们添加到下面的另一个函数中:

    function func3(){
        var total1 = func1_var2 + func2_var2;
        var total2 = func1_var3 + func2_var3;
        $('.someclass5').html(total1);
        $('.someclass6').html(total2);
    }

我想把它们放在一个数组中,但我不知道怎么做?

4

3 回答 3

1

返回一个对象并调用函数?

 function func1(){
    var var1 = $('.someclass_a').val();
    var var2 = var1 * some_number1;
    var var3 = var2 * some_number2;
    $('.someclass1').html(var2);
    $('.someclass2').html(var3);
    return {var2:var2,var3:var3}; //return object here
}

function func2(){
    var var1 = $('.someclass_b').val();
    var var2 = var1 * some_number1;
    var var3 = var2 * some_number2;
    $('.someclass3').html(var2);
    $('.someclass4').html(var3);
    return {var2:var2,var3:var3}; //return object here
}

 function func3(){
    var func1Ob = func1(), func2Ob = func2(), total1 , total2; //invoke the funcs
    total1 = func1Ob.var2 + func2Ob.var2; //get the values from obj returned.
    total2 = func1Ob.var3 + func2Ob.var3;
    $('.someclass5').html(total1);
    $('.someclass6').html(total2);
}
于 2013-10-19T16:57:02.523 回答
0

在函数外部声明变量并给它们不同的名称。然后在函数内部,您可以访问和更改它们。最后一个功能可以正常工作。

请记住使用不同的名称

于 2013-10-19T16:58:00.557 回答
0

您已经部分回答了您自己的问题:

var func1_var2, func1_var3, func2_var2, func2_var3;

function func1(){
    var var1 = $('.someclass_a').val();
    var var2 = func1_var2 = var1 * some_number1;
    var var3 = func1_var3 = var2 * some_number2;
    $('.someclass1').html(var2);
    $('.someclass2').html(var3);
}

function func2(){
    var var1 = $('.someclass_b').val();
    var var2 = func2_var2 = var1 * some_number1;
    var var3 = func2_var3 = var2 * some_number2;
    $('.someclass3').html(var2);
    $('.someclass4').html(var3);
}

不比马克西姆说的多。

于 2013-10-19T17:30:01.500 回答