es5-shim和underscore.js?

Mag*_*gus 4 javascript ecmascript-5 underscore.js es5-shim

我的JavaScript项目中有es5-shim.jsunderscore.js.

ES5-shim.js只需添加一些JavaScript原生功能,如reducesome对Internet Explorer和一些旧的浏览器阵列.underscore.js添加相同的东西(但使用不同的语法)和更多的东西(对象和数组上的实用程序函数).

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

因此,在像Firefox或Chrome这样的"最近"浏览器中,underscore.js使用浏览器的本机功能.我认为它比纯粹的javascript函数更好.但是在Internet Explorer上,underscore.js使用es5-shim函数.如果我删除es5-shim.js,则underscore.js使用自己的函数.

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

mik*_*ana 10

我不同意@ganeshi的回答.

如果您主要使用Underscore是ES5已经附带的东西,比如reduce()和some()那么我建议您删除underscore.js.

如果您现在编写为ES5方法,则可以在不再支持IE8或Firefox 3时删除ES5-shim.

如果你现在使用下划线,那么当你不再支持IE8或Firefox 3时,你仍然会携带大多数浏览器已经提供的大量内容的额外副本.