Cost.NameProperty = 0;
function Cost() {
Cost.NameProperty++; // что-то подобное
}
function cost1() {
let allAmount = 0;
return function(tax) {
let amount = tax * 0.2;
allAmount += amount;
console.log(`сумма налогов: ${allAmount} рублей`);
return amount;
}
}
cost = cost1();
cost(50);
cost(100);
cost(150);
cost(200);
function cost(tax) {
let amount = tax * 0.2;
console.log(`сумма налогов: ${amount} рублей`);
}
// тупо
cost(50) + cost(100) + cost(150);
// неплохо
let arr = [50, 100, 150];
let sum = 0;
let taxes = arr.forEach(item => sum += cost(item)); // в цикле по arr добавляем cost(item)
// круто
let sum = [50, 100, 150].reduce((sum, item) => sum + cost(item), 0);
reduce
накапливает значения. 0 - начальное значение (let sum = 0;
). В функцию подается накопленное значение (sum) и элемент массива (item). Возвращается новое накопленное значение (sum += cost(item)
). function cost() {
var sum=0;
return function(tax) {
var amount = tax * 0.2;
sum += amount;
console.log('сумма налогов: ' + sum + ' рублей');
return sum;
}
}
var nalog= cost();
nalog(50);
nalog(100);
nalog(150);