2012-04-05 10 views
1

Мне нужно создать отдельную функцию, которая создает общую цифру из переменных в пределах двух разных функций.Подведение итогов из разных функций - 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 Я искренне любопытен, но в чем проблема с 'function addToyX() {}'? –

+1

Вы можете вернуть «qtytoy1tot» и «qtytoy2tot» из соответствующих функций и сделать это таким образом. –

+0

@Whymarrh Пожалуйста, воздержитесь от подробных заявлений, как если бы они были лучшими практиками, если вы просто основываете это на том, что слышали и не говорите по опыту. Если вам интересно узнать о различиях между ними, ознакомьтесь с ответами и ссылками в комментариях по этому вопросу: http://stackoverflow.com/questions/336859/javascript-var-functionname-function-vs -функция-functionname –

ответ

0

У вас здесь есть несколько вариантов. Наиболее прямолинейный, как предложил Амит в комментарии, просто верните общее количество из каждого из методов. Это может работать или не работать в зависимости от того, как вы планируете использовать эти методы. Что-то вроде следующего должно работать для ваших целей.

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

Имейте в виду, вы действительно просто одну функцию здесь, и вы должны пройти в переменной части в качестве параметров функции, но я думаю, что может быть за рамки этого вопроса.

Смежные вопросы