Javascript Shim与Sham:有什么区别?

Javascript Shim与Sham:有什么区别?,javascript,ecmascript-5,ecmascript-6,polyfills,Javascript,Ecmascript 5,Ecmascript 6,Polyfills,填隙片和赝品有什么区别 包括es5-shim.min.js和es6-shim.min.js够了吗?还是我还应该包括es5-sham.min.js和es6-sham.min.js?根据垫片,包括忠实代表es5功能的所有猴子补丁 换句话说:您可以像使用ES5一样使用这些文件提供的功能 但是,SHAM包含那些无法用其他代码模拟的特性。它们基本上提供了API,因此您的代码不会崩溃,但它们不提供实际的功能 你需要什么?这取决于您如何编写代码。如果仅使用垫片提供的功能,则应包括这些功能。如果您还想(可选地)

填隙片和赝品有什么区别

包括es5-shim.min.js和es6-shim.min.js够了吗?还是我还应该包括es5-sham.min.js和es6-sham.min.js?

根据垫片,包括忠实代表es5功能的所有猴子补丁

换句话说:您可以像使用ES5一样使用这些文件提供的功能

但是,SHAM包含那些无法用其他代码模拟的特性。它们基本上提供了API,因此您的代码不会崩溃,但它们不提供实际的功能


你需要什么?这取决于您如何编写代码。如果仅使用垫片提供的功能,则应包括这些功能。如果您还想(可选地)使用shams中的功能,那么您需要这两种功能。

也以非常简洁的方式对其进行了描述。谢谢。以下是我从上面提到的两个来源收集的信息:来自ES5 github repo。。。“在许多情况下,这意味着这些SHAM会导致许多ES5方法以静默方式失败。请仔细决定这是否是您想要的。”。。。“es5-sham.js包含其他方法的部分实现,这些方法过于依赖底层引擎而无法准确工作。”我还可以看到repo中的sham/shim支持哪些功能。更有用的是,如果有人知道在添加假软件时,垫片通常会支持哪些特征。我还没有具体尝试过,但是如果SAMS中的任何东西在垫片中损坏了什么,我会认为是一个bug。我希望能够在所有浏览器中盲目支持尽可能多的ES5和ES6特征。这更有帮助吗?@garbanzio:我认为这不是一个明智的方法。您将无法盲目地使用所有功能(因为并非所有功能都可以仿真),因此您必须检查每个功能。当你这样做的时候,你可能会决定你是否需要shams。