成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

數(shù)字直接調(diào)用函數(shù):(5).fn1(2).fn2(3)實現(xiàn)5-2+3

Java_oldboy / 1685人閱讀

摘要:一番死腦筋的查詢資料,最終在上,發(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.prototypeconfigurable屬性為false
解決
那么問題好辦了,Number.prototype繼承于Object.prototype,Object.prototypeconfigurable屬性值是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.prototypeBoolean.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

相關文章

  • JavaScript 中如何實現(xiàn)函數(shù)隊列?(一)

    摘要:相反,我們只需要在末尾里找出中的下一個函數(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ù)是運行時一個...

    Kyxy 評論0 收藏0
  • this

    摘要:全局上下文在全局中,一律指向全局對象。特殊的以下情況中的需要進行特殊記憶。構造函數(shù)當一個函數(shù)作為構造函數(shù)使用時,構造函數(shù)的指向由該構造函數(shù)出來的對象。舉例使用綁定時,監(jiān)聽函數(shù)中的指向觸發(fā)事件的,表示被綁定了監(jiān)聽函數(shù)的元素。執(zhí)行與執(zhí)行同理。 我的博客地址 → this | The story of Captain,轉載請注明出處。 問:this 是什么? 答:this 是 call 方法...

    Airmusic 評論0 收藏0
  • 前端面試題(中)

    摘要:注意封裝成一個函數(shù)封裝一個函數(shù),將字符串實現(xiàn)的功能,但不使用方法,去掉字符串前后空格,返回處理后的字符串。當然答案還有很多,我們只是提供了其中幾種,你有好的解答也可以發(fā)送郵件,大家共同交流討論哈 來自妙味的一套面試題,以下答案來自JS講師的現(xiàn)場上課記錄! 一、選擇題 1、分析下段代碼輸出結果是( B ) var arr = [2,3,4,5,6]; var sum =...

    walterrwu 評論0 收藏0
  • 前端面試題(中)

    摘要:注意封裝成一個函數(shù)封裝一個函數(shù),將字符串實現(xiàn)的功能,但不使用方法,去掉字符串前后空格,返回處理后的字符串。當然答案還有很多,我們只是提供了其中幾種,你有好的解答也可以發(fā)送郵件,大家共同交流討論哈 來自妙味的一套面試題,以下答案來自JS講師的現(xiàn)場上課記錄! 一、選擇題 1、分析下段代碼輸出結果是( B ) var arr = [2,3,4,5,6]; var sum =...

    legendaryedu 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<