第1题 用 JS 实现一个无限累加的函数 add

1,502 阅读1分钟

因为打印一个函数的时候会调用toString方法,所以我们重写toString方法,当需要打印函数的时候返回累加值,当作为函数调用时执行函数。

function add(a) {
    // add函数调用时返回一个sum函数 
    // sum函数调用时返回一个sum函数
    // 打印sum函数时调用sum函数的toString函数
	function sum(b) {
    	a = a + b;
    	return sum;
 	}
 	// 此处重写sum函数的toString()方法 返回累加值a
 	sum.toString = function() {
        return a;
    }
 	return sum;
}

add(1); // 1
add(1)(2);  // 3
add(1)(2)(3); // 6
add(1)(2)(3)(4); // 10 

// 以此推类