如何在函数内部提取变量并放入另一个函数

时间:2013-10-19 16:53:29

标签: javascript jquery

我有以下这些功能:

    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);
    }

我想把它们放在一个阵列中,但我不知道怎么办?

3 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:0)

在函数外部声明变量并为它们指定不同的名称。然后在函数内部,您可以访问和更改它们。最后一个功能就可以了。

请记住使用不同的名称

答案 2 :(得分: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);
}

不超过马克西姆所说的。