javascript - 一道js笔试题?

查看:178
本文介绍了javascript - 一道js笔试题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

原题是:

     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行不通,求大神指点迷津
}

解决方案

你调用的时候要加上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加上括号就好了,不加就会报错...

这篇关于javascript - 一道js笔试题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆