const arr = [1, 2, 3, 4]; Array.prototype.myReduce = function(func, initial) { let result = initial; for (let i = 0; i < this.length; i++) { result = func(result, this[i]); } return result; } console.log(arr.myReduce((l,r) => l + r, 2)); // 12