Code for add(1)(2)...(n)
Code for add(1)(2)...(n)
function add(n) {let sum = n;const proxy = new Proxy(function a() {}, {get(obj, key) {return () => sum;},apply(receiver, ...args) {sum += args[1][0];return proxy;},});return proxy;}console.log(add(1)(2)(7)(15) == 25); // trueconsole.log(Number(add(1)(2)(7)(15))); // 25console.log(typeof add(1)(2)(7)(15)); // function// Does not work with ===console.log(add(1)(2)(7)(15) === 25); // false
Second Solution
function add(n) {var addNext = function (x) {return add(n + x);};addNext.valueOf = function () {return n;};return addNext;}console.log(add(1)(2)(7) == 10); // trueconsole.log(add(1)(2)(7).valueOf()); // 10console.log(typeof add(1)(2)(7)); // function// Does not work with ===console.log(add(1)(2)(7) === 10); // false