首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >es5-shim和underscore.js?

es5-shim和underscore.js?
EN

Stack Overflow用户
提问于 2012-11-24 19:53:02
回答 2查看 2.8K关注 0票数 4

在我的JavaScript项目中既有es5-shim.js也有underscore.js

es5-shim.js只是添加了一些javascript原生函数,比如用于Internet Explorer和一些旧浏览器的阵列上的reducesome。underscore.js添加了相同的东西(但使用了不同的语法)和更多的东西(对象和数组上的实用函数)。

但是,如果es5-shim添加的函数存在,underscore.js将使用它们。

因此,在火狐或Chrome这样的“最近”浏览器上,underscore.js使用浏览器的原生功能。我认为它比纯javascript函数更好。但在Internet Explorer上,underscore.js使用es5-shim函数。如果我删除es5-shim.js,underscore.js会使用它自己的函数。

对此有什么建议吗?我应该从我的项目中删除es5-shim而只使用underscore.js吗?或者我应该让underscore.js使用es5-shim的功能?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-25 18:56:00

正如您正确提到的,es5-shim添加了一些JavaScript函数,如map、reduce、some和forEach on Array,如果浏览器的JavaScript引擎与ES5不兼容。Underscore.js在"_“名称空间中添加了类似于上面(以及更多)的实用方法。因此,在这种情况下,在同一应用程序中使用这两种方法是多余的。

也就是说,es5-shim添加了更多的函数,如Date.now、Date.toJSON、Function.bind、String.trim (以及更多),其中一些函数在Underscore.js中没有直接的等价物。例如,下划线提供了等同于Function.bind的_.bind和_.bindAll,但Underscore.js不提供Date.now和Date.toJSON。

因此,如果您使用es5-shim提供的这些附加方法,则可以在您的应用程序中同时使用es5-shim和Underscore.js。但是,如果您没有使用这些额外的方法,那么使用es5-shim只会增加应用程序大小并浪费带宽。

票数 4
EN

Stack Overflow用户

发布于 2013-01-17 01:18:50

我不同意@ganeshi's answer的观点。

如果下划线的主要用法是ES5中已有的东西,如reduce()和(),那么我建议您删除underscore.js。

如果您现在编写ES5方法的代码,那么当您不再支持IE8或Firefox3时,您可以简单地删除ES5-shim。

如果你现在使用下划线,那么当你不再支持IE8或Firefox3时,你仍然会携带一份大多数浏览器已经提供的大量东西的额外副本。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13540951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档