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

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