久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

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

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

瀏覽:137日期: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
相關文章:
主站蜘蛛池模板: 在线第一页 | 国产精品一区二区三区av | 国产情侣av自拍 | 中文字幕日韩一区 | 91亚洲免费 | 亚洲aaa| 在线观看免费国产 | 国产日韩欧美综合 | 精品一区二区三区免费视频 | 激情小视频网站 | 精品国产一区二区三区在线观看 | av在线三级 | 超碰人人在线 | 国产一区二区视频在线 | 国产一区二区三区久久久久久久久 | 欧美精品1区2区3区 欧美视频在线一区 | 午夜伦理影院 | 欧美不卡一区二区三区 | av在线精品 | 久久se精品一区精品二区 | 日本精品二区 | 国产视频一区二区在线观看 | 欧美大片免费高清观看 | 国产女人免费看a级丨片 | 欧美国产日韩精品 | 成人高清视频在线 | 中文字幕一区在线观看视频 | 国产成人久久精品77777 | 一区二区三区不卡视频 | 国产精品色一区二区三区 | 国产欧美在线视频 | 99久久精品一区二区成人 | 日韩经典一区 | 毛片久久久 | 久久草视频 | 亚洲专区在线播放 | 天天舔天天干天天操 | 99国内精品久久久久久久 | av看片网| 亚洲免费视频大全 | 91色在线观看 |