@Maksspb

Как настроить функцию для передачи различных значений?

Как вызвать функцию несколько раз передавая РАЗЛИЧНУЮ стоимость товаров где к ней прибавляется процент (13)? В функции сумма прибавляется к ранее вычисленным.
function createCounter(counter = 0) {
return function () {
var percent = 13;
console.log(counter = counter + (percent * counter/ 100));
};
}
var tic = createCounter(53);
tic();
tic();
  • Вопрос задан
  • 127 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Внутри возвращаемой функции запоминайте значение:
function nds( cost) {
  return function() {
    var _cost = cost;
    var result = _cost * 1.13;
    console.log( result.toFixed(2));
  }
}


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

var a = nds(53);
var b = nds(12);
a(); // 59.89
b(); // 13.56


Upd. для общего счётчика придётся завести переменную, видимую из всех функций:
var total = 0;

function nds( cost) {
  return function() {
    var _cost = cost; // запомнили внутри цену
    var result = _cost * 1.13; // добавили НДС
    total += result; // добавили к общей сумме
    console.log( "result:", result.toFixed(2), "total:", total.toFixed(2));
  }
}

var a = nds(53);
var b = nds(12);

a(); // result: 59.89 total: 59.89
b(); // result: 13.56 total: 73.45
a(); // result: 59.89 total: 133.34
a(); // result: 59.89 total: 193.23
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
SummerWeb Ярославль
от 120 000 до 180 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
Brightdata Тель-Авив
от 5 500 до 6 500 $