2013-10-19 51 views
-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); 
    } 

我想把他們放在一個數組,但我不知道如何?

回答

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

不超過馬克西姆說。

相關問題