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