Вы можете взять инстанцируемую функцию и прототип для добавления значений.
function Numbers(array) {
this.numbers = array;
}
Numbers.prototype.add = function () {
return this.numbers.reduce((a, b) => a + b, 0);
};
var array = [93, 95, 88, 0, 55, 91],
numbers = new Numbers(array),
result = numbers.add();
console.log(result);
Другая возможность - использовать свободный интерфейс, где вы возвращаете объект с некоторыми функциями, где вы можете связать функции в ряд.
function take(array) {
var object = {
add: () => array.reduce((a, b) => a + b, 0),
update: cb => take(array.map(cb)),
valueOf: () => array
};
return object;
}
var array = [93, 95, 88, 0, 55, 91],
numbers = take(array),
result = numbers.add();
console.log(result);
console.log(numbers.valueOf());
console.log(numbers.update(x => 2 * x).valueOf());