摘要:一番死腦筋的查詢資料,最終在上,發(fā)現(xiàn)的屬性為解決那么問題好辦了,繼承于,的屬性值是。遺留問題其實,刪除掉上述,只執(zhí)行是可以的,為什么加一個屬性可以,加兩個卻不行,正在研究,也希望有高人解答。
起因
在網(wǎng)上無意間看到這么一道題,第一次實踐,直接報錯,所以記錄下來加深記憶過程
一看到數(shù)字可以調(diào)用函數(shù),最先想到的類似的場景就是(5).toFixed(2),那么接下來,有兩個思路了
1、重寫Number原型對象中的方法
2、在Number的原型對象中添加方法
思路一在實踐過程中,終于在bind方法中迷失了自我,最后放棄治療,先記下來以后再戰(zhàn)。
思路二,本人沒有仔細考慮,直接寫了下面一段代碼
Number.prototype.fn1 = function (item){ const value = this.valueOf(); // value const result = value - item; return result; }; Number.prototype.fn2 = function (item){ const value = this.valueOf(); // value const result = value + item; return result; } console.log((5).fn1(2).fn2(3));
結果就是報錯:fn1未定義解決
打斷點,發(fā)現(xiàn)沒有調(diào)用fn1,而是在fn2定義的時候直接報錯,在控制臺打印Number.prototype,發(fā)現(xiàn)fn1在打印出的對象中,fn2卻沒有出現(xiàn)。
一番死腦筋的查詢資料,最終在mdn上,發(fā)現(xiàn)Number.prototype的configurable屬性為false
那么問題好辦了,Number.prototype繼承于Object.prototype,Object.prototype的configurable屬性值是true。更改代碼如下
Object.prototype.fn1 = function (item){ const value = this.valueOf(); // value const result = value - item; return (result); // return result; 不加()的話,后面的.會被識別為小數(shù)點哦 }; Object.prototype.fn2 = function (item){ const value = this.valueOf(); // value const result = value + item; return result; } console.log((5).fn1(2).fn2(3));
ok,問題到這里結束,另外,隨手查了String.prototype和Boolean.prototype,它們的configurable屬性值也是false。遺留問題
其實,刪除掉上述Number.prototype.fn2,只執(zhí)行(5).fn1(2)是可以的,為什么加一個屬性可以,加兩個卻不行,正在研究,也希望有高人解答。
Number.prototype.fn1 = function (item){ const value = this.valueOf(); // value const result = value - item; return (result); }; console.log((5).fn1(2));
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/102340.html
摘要:相反,我們只需要在末尾里找出中的下一個函數(shù),再調(diào)用第二個調(diào)用這個函數(shù)負責找出中的下一個函數(shù)并執(zhí)行。我們現(xiàn)在來實現(xiàn)其實也可以用把拿出來通過去獲取中的函數(shù),每調(diào)用一次會加,從而達到取出下一個函數(shù)的目的。中大名鼎鼎的框架正是這樣實現(xiàn)中間件隊列的。 假設你有幾個函數(shù)fn1、fn2和fn3需要按順序調(diào)用,最簡單的方式當然是: fn1(); fn2(); fn3(); 但有時候這些函數(shù)是運行時一個...
摘要:注意封裝成一個函數(shù)封裝一個函數(shù),將字符串實現(xiàn)的功能,但不使用方法,去掉字符串前后空格,返回處理后的字符串。當然答案還有很多,我們只是提供了其中幾種,你有好的解答也可以發(fā)送郵件,大家共同交流討論哈 來自妙味的一套面試題,以下答案來自JS講師的現(xiàn)場上課記錄! 一、選擇題 1、分析下段代碼輸出結果是( B ) var arr = [2,3,4,5,6]; var sum =...
閱讀 832·2023-04-26 00:37
閱讀 720·2021-11-24 09:39
閱讀 2146·2021-11-23 09:51
閱讀 3813·2021-11-22 15:24
閱讀 743·2021-10-19 11:46
閱讀 1876·2019-08-30 13:53
閱讀 2427·2019-08-29 17:28
閱讀 1325·2019-08-29 14:11