您当前的位置: 首页 > 

暂无认证

  • 2浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

向Number内置类(原型)上扩展方法

发布时间:2021-03-09 20:38:28 ,浏览量:2

7、编写 plus 和 minus 实现如下需求
// anonymous: 匿名函数的名称 // 闭包的作用是防止函数跟全局函数有冲突 // 函数自调方式 // ~ function() {}(); // (function() {})() ~ function anonymous(proto) { // 封装 plus 函数 和 minus 函数 共同部分 // 使用函数表达式方式创建函数是为了保证函数提升和 // 防止在创建函数前调用函数 const checkNum = function checkNum(num) { // 强制转换为 Number 类型 num = Number(num); // 如果 num 不是有效数字 if (isNaN(num)) { // 给 num 赋值为 0 num = 0; } // 返回 num return num; }; // 函数表达式 // 把匿名函数改为具名函数,在全局通过函数名无法访问此函数 proto.plus = function plus(num) { // 在函数内部可以调用此函数 // 调用方式 Number.prototype.plus() // 既不跟外部函数名字冲突 // 又可以通过特殊方式调用 // => this: 要操作的那个数字实例(对象)  // => 返回 Number 类的实例,实现链式写法 return this + checkNum(num); }; proto.minus = function minus(num) { return this - checkNum(num); }; }(Number.prototype); let n = 10; let m = n.plus(10).minus(5); console.log(m); // => 15 (10+10-5) // 向 Number 内置类(原型)上扩展方法 // 创建一个数据类型值: // 1.字面量方式 // 2.构造函数方式 // 不论哪一种方式,创建出来的结果都是所属类的实例 // => 基本数据类型两种创建方式是不一样的: 字面量创建的是基本类型值, // 构造函数方式创建的是引用类型值 // let x = 10; // 字面量方式 // let y = new Number(10); // 构造函数方式 // console.log(y.valueof() === x); // => 对象结果的原始值是基本类型数字 10 
关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

1.1848s