Shim和Polyfill

188 阅读1分钟

Shim

一个Shim是一个库,它将一个新的API放入旧的环境中,依靠旧环境中已有的手段实现。

主要特征:

  • 改API存在于现代浏览器中;
  • 浏览器有各自的API或可通过别的API实现;

Polyfill

一个polyfill是一段代码(或者插件),提供了哪些开发者希望浏览器原生提供支持的功能。程序库会先检查浏览器是否支持某个API,如果不支持就加载对应的polyfill。

主要特征:

  • 是一个浏览器API的Shim;
  • 和浏览器有关;
  • 没有提供新的API,只是在API中实现缺少的功能;

Shim的概念要比polyfill更广泛一些,可以理解为polyfill是专门兼容浏览器的shim。