title: shim和polyfill有什么区别?
topic: 前端开发
content: polyfill 是 shim 的一种。shim 是将不同 api 封装成一种，比如 jQuery 的 .ajax 封装了 XMLHttpRequest 和 IE 用 ActiveXObject 方式创建 xhr 对象 polyfill 特指 shim 成的 api 是遵循标准的，其典型做法是在IE浏览器中增加 window.XMLHttpRequest ，内部实现使用 ActiveXObject。在实际中为了方便做对比，会特指 shim 的 api 不是遵循标准的，而是自己设计的。
answerer_tags: 前端工程师@淘宝UED