javascript - 一道js笔试题?
本文介绍了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屋!
查看全文