2012-04-05 29 views
1

我需要能够创建一个独立的函数,该函数根据2个不同函数中的变量创建总数。从不同的函数总结总结 - Javascript

function addToy1() 
{ 
var i = document.getElementById("qty_toy1"); 
var qtytoy1 = i.options[i.selectedIndex].text; 
var qtytoy1tot = qtytoy1 * 26.99; 
var generateTableToy1="<table width=\"210px\" border=\"0\">" 
        +" <tr>" 
        +" <td width=\"140\">Optimus Prime</td>" 
        +" <td width=\"25\">x " + qtytoy1 + "</td>" 
        +" <td width=\"45\">&pound;" + qtytoy1tot + "</td>" 
        +" </tr>" 
        +"</table>"; 

document.getElementById("toy1_add").innerHTML=generateTableToy1; 

} 

function addToy2() 
{ 
var i = document.getElementById("qty_toy2"); 
var qtytoy2 = i.options[i.selectedIndex].text; 
var qtytoy2tot = qtytoy2 * 14.39; 
var generateTableToy2="<table width=\"210px\" border=\"0\">" 
        +" <tr>" 
        +" <td width=\"140\">Bumblebee</td>" 
        +" <td width=\"25\">x " + qtytoy2 + "</td>" 
        +" <td width=\"45\">&pound;" + qtytoy2tot + "</td>" 
        +" </tr>" 
        +"</table>"; 

document.getElementById("toy2_add").innerHTML=generateTableToy2; 


} 

有了这段代码,我需要做一个变量“qtytoy1tot”和“qtytoy2tot”的总和。我是Javascript新手。请尽可能帮忙。谢谢。

+1

@Whymarrh我很好奇,但函数addToyX(){}'有什么问题? – 2012-04-05 02:02:18

+1

你可以从各自的功能中返回“qtytoy1tot”和“qtytoy2tot”,并且这样做。 – 2012-04-05 02:02:48

+0

@Whymarrh如果你只是根据你所听到的而不是从经验中发表的言论,请不要把它们作为最佳实践进行详尽的陈述。如果您有兴趣了解两者之间的差异,请查看关于此问题的评论中的答案和链接:http://stackoverflow.com/questions/336859/javascript-var-functionname-function-vs功能函数名称 – 2012-04-05 02:11:24

回答

0

此处有多个选项。最简单的就是Amit在评论中提出的建议,只是从每种方法中返回总数。这可能会或可能不会工作,具体取决于您计划如何使用这些方法。类似下面的内容应该适用于你的目的。

function ToyBox() { 
    this.total = 0; 
} 

ToyBox.prototype.addToy1 = function() { 
    var i = document.getElementById("qty_toy1"); 
    var qtytoy1 = i.options[i.selectedIndex].text; 
    var qtytoy1tot = qtytoy1 * 26.99; 
    this.total += qtytoy1tot; 
    var generateTableToy1="<table width=\"210px\" border=\"0\">" 
         +" <tr>" 
         +" <td width=\"140\">Optimus Prime</td>" 
         +" <td width=\"25\">x " + qtytoy1 + "</td>" 
         +" <td width=\"45\">&pound;" + qtytoy1tot + "</td>" 
         +" </tr>" 
         +"</table>"; 

    document.getElementById("toy1_add").innerHTML=generateTableToy1; 
     }; 

ToyBox.prototype.addToy2 = function() { 
    var i = document.getElementById("qty_toy2"); 
    var qtytoy2 = i.options[i.selectedIndex].text; 
    var qtytoy2tot = qtytoy2 * 14.39; 
    this.total += qtytoy2tot; 
    var generateTableToy2="<table width=\"210px\" border=\"0\">" 
         +" <tr>" 
         +" <td width=\"140\">Bumblebee</td>" 
         +" <td width=\"25\">x " + qtytoy2 + "</td>" 
         +" <td width=\"45\">&pound;" + qtytoy2tot + "</td>" 
         +" </tr>" 
         +"</table>"; 

    document.getElementById("toy2_add").innerHTML=generateTableToy2; 
}; 

var toyBox = new ToyBox(); 
toyBox.addToy1(); 
toyBox.addToy2(); 
console.log(toyBox.total); 

请记住,你真的只是有一个功能在这里,你应该在可变部分传递作为参数的功能,但我认为这可能超出了这个问题的范围。