• 实现如下语法的功能:var a = (5).plus(3).minus(6); //2


    汤姆大叔的博客里看到了6个基础题目:本篇是第5题 - 实现如下语法的功能:var a = (5).plus(3).minus(6); //2

    解题关键:

    1、理解使用(5)和5的区别

    2、构造函数原型的扩展(Object.prototype)

    解点1:理解使用(5)和5的区别

    console.log( (5).toString() ); // 5
    console.log( 5.toString() ); // Unexpected token ILLEGAL

    (5)是一个表达式,它会返回一个Number对象,而5是一个常量,不会返回一个Number对象。

    解点2:构造函数原型的扩展

    js中,所有的数字都是一个Number对象,也可以理解为"数字是根据Number构造函数new出来的实例"。每一个对象都有原型,一旦对某个构造函数的原型添加属性或方法,那么以此构造函数new出来的实例都会增加此属性或方法,如题,我们只需要对Number进行扩展plus和minus两个方法即可解决该问题,代码如下:

    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等……

    此解解答完毕!

  • 相关阅读:
    The Snail
    Oil Deposits
    杭电3784(继续xxx定律)
    poj 2395 Out of Hay
    poj 2485 Highways(简单题)
    poj 2560 || 杭电1162
    Rescue
    “中国芯”能抗衡英特尔吗?
    2013,中国计算巨头放眼国际市场
    123063天两度瘫痪:为啥不在淘宝上卖火车票?
  • 原文地址:https://www.cnblogs.com/langzs/p/6637614.html
Copyright © 2020-2023  润新知