参考:http://blog.csdn.net/u012657197/article/details/77574927
http://blog.csdn.net/cct418/article/details/50889987
拼多多笔试题
add(1)(2) // 3
add(1, 2, 3)(10) // 16
add(1)(2)(3)(4)(5) // 15
function add() {
var args1 = Array.prototype.slice.call(arguments);
var fn = function () {
var args2 = Array.prototype.slice.call(arguments);
return add.apply(null,args2.concat(args1));
};
fn.toString = function () {
return args1.reduce(function (a, b) {
return a * b;
});
};
<!-- fn.valueOf = function () {
return args1.reduce(function (a, b) {
return a + b;
});
};-->
return fn;
}
var a = `${add(1)(2)}`;
var b = +(add(1)(2));
console.log('a:',a,'b',b);
valueOf的意思是返回最适合该对象类型的原始值,
而toString则是将在该对象类型的原始值以字符串形式返回。
注意:1.最后必须显式调用转换为数值或者string 才能调用重写的方法
直接输出add(1)(2)并未触发显示调用的方法
2.args1为add()的参数,而非toString()方法的参数,它的参数为空。
3.
2.给定一个数组,求数组中数之和为15的数有几对?
这里写代码片
参考:找出数组中两数之和为指定值的所有整数对,http://www.cnblogs.com/hapjin/p/5746659.html