色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

javascript - es6數值解構Number.prototype.toString is not generic

瀏覽:121日期:2023-04-27 14:18:21

問題描述

<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>Document</title></head><body> <script>({toString:b} = 123);console.log(b === Number.prototype.toString); // trueconsole.log(Number.prototype.toString()); // 0console.log(b()); // Number.prototype.toString is not genericlet num = 456;console.log(num.b()); // num.b is not a function </script></body></html>

為什么b不能作為函數調用?

問題解答

回答1:

Number.prototype.toString 標準

The toString function is not generic; it throws a TypeError exception if its this value is not a Number or a Number object. Therefore, it cannot be transferred to other kinds of objects for use as a method.

翻譯一下后面的:

如果他的this值不是數字類型或者Number對象,將會拋出一TypeError

直接調用this是window你可以這么用:

b.call(1)b.call(Number(’test’))回答2:

你可以b.call(num),一般來說toString不允許作為普通函數執行很容易接受,就跟構造函數一般不作為普通函數執行一樣。ps:例子中的Number.prototype.toString()實際上作用域也是Number.prototype

補充一下,答題有點離題了,b()實際上是作為函數調用的,也調用成功了,錯誤是toString()自身拋出來的。

回答3:

Number.prototype.toString 可以作為函數調用但 this 一定要是 Number 類型。其他類型的 toString 同理。

b.call(123)// '123'

The toString function is not generic; it throws a TypeError exception if its this value is not a Number or a Number object. Therefore, it cannot be transferred to other kinds of objects for use as a method.

15.7.4.2 Number.prototype.toString

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 国产成人久久一区二区三区 | 日本韩国欧美一区 | 国产香蕉国产精品偷在线观看 | 韩国一级黄色毛片 | 九九久久精品视频 | 精品国产理论在线观看不卡 | 正在播放国产乱子伦视频 | 亚洲精品久久久久久久网站 | 在线观看视频中文字幕 | 欧美一二三 | 亚洲人在线 | 成 人 亚洲 综合天堂 | 高清国产一区二区三区 | www.午夜 | 国产成人综合95精品视频免费 | 国产亚洲精品精品国产亚洲综合 | 大片国产片日本观看免费视频 | 国产日韩欧美一区二区三区综合 | 国产精品久久久久久福利漫画 | 日韩一区二区三区在线 | 女人被男人躁得好爽免费视频免费 | 又www又黄又爽啪啪网站 | 日韩在线视频中文字幕 | 高清在线观看自拍视频 | 亚洲午夜在线 | 精品成人一区二区三区免费视频 | 99亚洲| 日韩亚 | 欧美一区二区三区四区在线观看 | 99精品在线免费观看 | 中文在线视频观看 | 成人免费小视频 | 一级aaaaa毛片免费视频 | 欧美色道 | 99久免费精品视频在线观看2 | 亚洲三级在线视频 | 欧美α一级毛片 | 在线视频 一区二区 | 九草在线| 一区二区三区在线播放视频 | 免费一级淫片aaa片毛片a级 |