javascript - 一道js笔试题?
高洛峰
高洛峰 2017-04-11 12:13:47
[JavaScript讨论组]

原题是:

     var a=(10).add(20).reduce(2).add(10);//意思是10加20减2加10要求用原生js实现。

这题我的解题思路是用Number.prototype添加方法,但是现在问题来了,当一个数字调用add函数时,例如以(10).add(20)为例:

Number.prototype.add=function(num){
        //在这里我想要获得10来与num相加,但是发现用this行不通,求大神指点迷津
}
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(2)
PHP中文网

你调用的时候要加上Number转换成一个number类型的对象,要想链式调用,返回值也加一个Number转换一下吧

Number.prototype.add=function(num){return Number(this + num)}
Number(10).add(20).add(30)

其实没那么麻烦,我也搞麻烦了,你把10赋值一个变量就好

var a = 10

又试了一下题主的方法

Number.prototype.add=function(num){return this+num}
(10).add(20)

chrome控制台下面是没问题的,10加上括号就好了,不加就会报错...

黄舟

没发现任何问题,但是那个reduce用来当减法不好,原生js的归并就是reduce

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号