JS之prototype用法(给Number添加通用属性/方法)

 

下午室友发给我一道前端面试题,因为当时忙着赶项目,目光扫了一眼,立马就回答道 “写一个add方法和一个minus方法传参数进去就好了丫~ ”

等下班回过头来仔细看这道题,为自己的愚蠢的回答感到愧疚,发现题中是数字调用方法,这不是简单写个方法就能实现,而需要用到JS原生属性prototype

一、Number.prototype

  1. Number.prototype属性表示Number 构造函数的原型。
  2. 所有 Number实例都继承自Number.prototype,修改 Number 构造函数的原型对象会影响到所有 Number实例。.
  3. 通过给 Number.prototype增加方法可以让该方法对所有number都可用

二、Number实例方法

我们通过控制台将Number原生实例方法打印出来,如图

三、通过Number.prototype增加全局方法

以上面的面试题为例,我们需要给Number增加一个add和minus方法

  1. Number.prototype.add = function(num) {
  2. return this + num
  3. }
  4. Number.prototype.minus = function(num) {
  5. return this - num
  6. }
  7. console.log((3).add(2).minus(1)); // 4

再去查看一下Nubmer.prototype实例,我们会发现多了两个全局方法add和minus

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章