下午室友發給我一道前端面試題,因爲當時忙着趕項目,目光掃了一眼,立馬就回答道 “寫一個add方法和一個minus方法傳參數進去就好了丫~ ”
等下班回過頭來仔細看這道題,爲自己的愚蠢的回答感到愧疚,發現題中是數字調用方法,這不是簡單寫個方法就能實現,而需要用到JS原生屬性prototype
一、Number.prototype
- Number.prototype屬性表示Number 構造函數的原型。
- 所有 Number實例都繼承自Number.prototype,修改 Number 構造函數的原型對象會影響到所有 Number實例。.
- 通過給 Number.prototype增加方法可以讓該方法對所有number都可用
二、Number實例方法
我們通過控制檯將Number原生實例方法打印出來,如圖
三、通過Number.prototype增加全局方法
以上面的面試題爲例,我們需要給Number增加一個add和minus方法
- Number.prototype.add = function(num) {
- return this + num
- }
- Number.prototype.minus = function(num) {
- return this - num
- }
- console.log((3).add(2).minus(1)); // 4
再去查看一下Nubmer.prototype實例,我們會發現多了兩個全局方法add和minus