JavaScript对象和方法算术运算或输出之valueOf和toString优先级

参考: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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值