polyfill
的概念是 Remy Sharp 在2010年提出的。webpack
polyfill
,或 polyfiller
,表示为开发人员提供旧浏览器没有原生支持的较新功能的一块代码或一个插件(利用旧浏览器的原生功能实现较新功能)。web
shim
则能够看作是 polyfill
的超集,表示将一个新的API引入到一个旧的环境中,并且仅靠旧环境中已有的手段实现。浏览器
二者的区别在于polyfill
针对浏览器,而shim
针对任何环境。ide
在全部其余代码以前直接import
须要的polyfill/shim
。ui
这二者一般用于修复损坏实现,即在最现代的、最新版本的浏览器中,也可能须要用到这些polyfill/shim
,所以须要不加选择地、同步地加载全部的polyfill/shim
,插件
固然这也会形成相关的问题:额外的体积(大小)成本。code