Суммирование суммы из разных функций - Javascript
Мне нужно иметь возможность создать отдельную функцию, которая создает общую фигуру из переменных в 2 разных функциях.
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\">£" + 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\">£" + qtytoy2tot + "</td>"
+" </tr>"
+"</table>";
document.getElementById("toy2_add").innerHTML=generateTableToy2;
}
С этим кодом мне нужно сделать сумму обеих переменных "qtytoy1tot" и "qtytoy2tot". Я новичок в Javascript. Пожалуйста, помогите, где вы можете. Благодарю.
1 ответ
Решение
У вас есть несколько вариантов здесь. Самое простое, как предложил Амит в комментарии, просто вернуть сумму по каждому из методов. Это может или не может работать в зависимости от того, как вы планируете использовать эти методы. Что-то вроде следующего должно работать для ваших целей.
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\">£" + 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\">£" + qtytoy2tot + "</td>"
+" </tr>"
+"</table>";
document.getElementById("toy2_add").innerHTML=generateTableToy2;
};
var toyBox = new ToyBox();
toyBox.addToy1();
toyBox.addToy2();
console.log(toyBox.total);
Имейте в виду, у вас на самом деле есть только одна функция, и вы должны передать переменные части в качестве параметров функции, но я думаю, что это может быть за рамками этого вопроса.