鍍金池/ 問(wèn)答/網(wǎng)絡(luò)安全  HTML/ 某個(gè)promise polyfill中的一個(gè)疑惑

某個(gè)promise polyfill中的一個(gè)疑惑

clipboard.png

如上圖所示,不太明白的是:為什么then是用的點(diǎn)語(yǔ)法,而catch、finally用的[]語(yǔ)法,是因?yàn)閏atch、finally是js里邊的關(guān)鍵字嗎?不知道這里邊有什么我還不了解的知識(shí)點(diǎn)。

這是這個(gè)polyfill的github地址,在157 -- 168行
https://github.com/taylorhake...

回答
編輯回答
局外人

js關(guān)鍵字,不能用作變量、函數(shù)名、過(guò)程、和對(duì)象名。
本來(lái)嘛,他也沒(méi)錯(cuò),但是你不知道和別的東西合在一起使用會(huì)發(fā)生什么樣的錯(cuò)誤。
比如有些工具壓縮的時(shí)候。。。完蛋。
這樣就安全多了。

2017年6月23日 02:12
編輯回答
帥到炸

同意樓上的看法。

其實(shí)這種寫(xiě)法在99%都是沒(méi)有問(wèn)題的。

另外1%的可能性,編譯器將你的代碼編譯成了別的鬼樣子就會(huì)有問(wèn)題。我yy一個(gè)例子:

// 比如編譯器把上面的代碼編譯成類似這樣就報(bào)錯(cuò)了


Promise.prototype = function catch(onReject) {};
2018年6月4日 22:51
編輯回答
過(guò)客

應(yīng)該是關(guān)鍵字的原因

2017年3月25日 07:36
編輯回答
老梗

沒(méi)啥知識(shí)點(diǎn),只是作者隨心所欲混用了而已
你看這個(gè)promise的實(shí)現(xiàn)就直接是Promise.prototype.finally
https://github.com/then/promi...

2017年6月24日 12:47