从汤姆大叔的博客里看到了6个基础题目:本篇是第5题 - 实现以下语法的功能:var a = (5).plus(3).minus(6); //2html
解题关键:函数
一、理解使用(5)和5的区别this
二、构造函数原型的扩展(Object.prototype)spa
console.log( (5).toString() ); // 5 console.log( 5.toString() ); // Unexpected token ILLEGAL
(5)是一个表达式,它会返回一个Number对象,而5是一个常量,不会返回一个Number对象。prototype
js中,全部的数字都是一个Number对象,也能够理解为"数字是根据Number构造函数new出来的实例"。每个对象都有原型,一旦对某个构造函数的原型添加属性或方法,那么以此构造函数new出来的实例都会增长此属性或方法,如题,咱们只须要对Number进行扩展plus和minus两个方法便可解决该问题,代码以下:code
Number.prototype.plus = function(n) { return this.valueOf() + n; } Number.prototype.minus = function(n) { return this.valueOf() - n; } console.log( (5).plus(3).minus(6) ) //2
根据解此题的思路,还可扩展String/Math等……htm
此解解答完毕!对象