-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
2014年12月22日 D4 #30
Labels
Comments
此函数add 每定义次只能使用一次! var add = (function(){
var r = 0;
return function p(n){
r += n;
p.toString = function() {
return r;
};
return p;
}
})(); |
再来一发 改进后的 可以多次用的函数 function add(m) {
var r = m;
function p(n) {
r += n;
return p;
}
p.valueOf = function () {
return r;
};
return p;
}
add(1); // 1
add(1)(2); // 3
add(1)(2)(3); // 6
add(1)(2)(3)(4); // 10
add(1)(2)(3)(4)(5); // 15 |
function add(n) {
function counter(m) {
n += m;
return counter;
};
counter.toString = counter.valueOf = function () {return n}
return counter;
}
// 测试用例
console.log(add(1)(2)(3)); // 6
console.log(add(1)(2)(3)(4)); // 10
console.log(add(1)(2)(3)(4)(5)); // 15
var addTwo = add(2);
console.log(addTwo) // 2
console.log(addTwo(3)) // 5
console.log(addTwo(3)(5)) // 13 |
function add(n){
sum=n;
add=function(m){
sum+=m;
return add;
};
add.toString=add.valueOf=function(){return sum};
return add;
} |
function add(n){
function helper(a,b){
var sum=a+b;
var s=helper.bind(null,sum);
s.valueOf=s.toSrting=function(){
return sum;
}
return s;
}
return helper(n,0);
}
console.log(+add(1)(2)(3)); // 6
console.log(+add(1)(2)(3)(4)); //10
console.log(+add(1)(2)(3)(4)(5)); // 15
var addTwo = add(2); // 2
addTwo(3); // 5
addTwo(3)(5); // 13 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
创建一个函数,将传入的数字相加,支持链式调用。
我们也可以多次链式调用
也要支持,存储和重用。
The text was updated successfully, but these errors were encountered: