реализовать на js функцию addOne
Как реализовать на js функцию addOne, чтоб была возможность выводить результат в таком виде:
console.log(addOne().getResult()) // 1
console.log(addOne()()().getResult()) // 3
console.log(addOne()().getResult()) // 2
Ответы (1 шт):
Автор решения: Anton Shchyrov
→ Ссылка
function addOne() {
let idx = 1;
const res = function() {
idx++;
return res;
};
res.getResult = function() {
return idx;
};
return res;
}
console.log(addOne().getResult()) // 1
console.log(addOne()()().getResult()) // 3
console.log(addOne()().getResult()) // 2
Идея: функция addOne() возвращает функцию, которая при каждом вызове увеличивает внутренний счетчик. А т.к. функции в JS - это объекты, то возвращаемый объект еще содержит поле-метод getResult, который возвращает текущее значение счетчика