在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 使用babel-runtime兼容Set、Map、Promise等接口的疑惑?

使用babel-runtime兼容Set、Map、Promise等接口的疑惑?

在支持上述接口的瀏覽器中,babel-runtime是使用原生的api還是它模擬的api ?

回答
編輯回答
冷溫柔

babel-runtime 不會(huì)轉(zhuǎn)譯實(shí)例方法,如 "foobar".includes("foo")之類的實(shí)例方法。

對(duì)于Set Map Promise 等全局對(duì)象的兼容,babel-runtime提供了polyfill選項(xiàng):

polyfill

boolean, defaults to true.
Toggles whether or not new built-ins (Promise, Set, Map, etc.) are transformed to use a non-global polluting polyfill.

也就是說,如果polyfilltrue無論瀏覽器支不支持Promise等新全局對(duì)象,瀏覽器都會(huì)使用babel-runtime轉(zhuǎn)換后的全局對(duì)象

如果polyfill設(shè)為 false,在不支持上述接口的瀏覽器中,會(huì)報(bào)錯(cuò)。在支持上述接口的瀏覽器中,則會(huì)使用瀏覽器原生的對(duì)象。

以下是三種不同的情況下打印Promise對(duì)象,可以看出明顯區(qū)別:

  • polyfilltrue, 瀏覽器支持Promise

    clipboard.png

  • polyfillfalse, 瀏覽器支持Promise

    clipboard.png

  • polyfillfalse, IE瀏覽器不支持Promise

    clipboard.png

參考:

  1. Runtime transform

2017年6月11日 05:38