polyfill
的概念是 Remy Sharp 在2010年提出的。webpack
polyfill
,或 polyfiller
,表示爲開發人員提供舊瀏覽器沒有原生支持的較新功能的一塊代碼或一個插件(利用舊瀏覽器的原生功能實現較新功能)。web
shim
則能夠看作是 polyfill
的超集,表示將一個新的API引入到一箇舊的環境中,並且僅靠舊環境中已有的手段實現。瀏覽器
二者的區別在於polyfill
針對瀏覽器,而shim
針對任何環境。ide
在全部其餘代碼以前直接import
須要的polyfill/shim
。ui
這二者一般用於修復損壞實現,即在最現代的、最新版本的瀏覽器中,也可能須要用到這些polyfill/shim
,所以須要不加選擇地、同步地加載全部的polyfill/shim
,插件
固然這也會形成相關的問題:額外的體積(大小)成本。code