core-js polyfill或它总是取代函数吗?

时间:2017-02-01 21:46:55

标签: polyfills babel-polyfill

我有一个需要支持旧浏览器的反应项目,我们正在使用像array.find()和array.map()这样的东西。我看到我们的项目已经在node_modules文件夹中有了core-js,所以最好使用它而不是向项目中添加另一个包。

如果我像这样导入:

import 'core-js/fn/array/find';

正如在此回复中所建议的那样:http://discuss.babeljs.io/t/why-does-array-prototype-find-not-work-with-babel-preset-es2015/46/4执行polyfill还是会替换可能已存在的array.find函数?如果它将取代现有功能,是否存在任何性能问题或其他原因导致您不想使用此方法?

1 个答案:

答案 0 :(得分:2)

core-js总是替换您导入的函数。

可能存在问题,我遇到的是试图导入由加载zone.js的框架加载的代码中的完整库,该框架通过替换zone.js替换Promises zone.js {1}}已经取代。

所以现在我使用core-js通过这样的方式来填充各个函数:

if( ! Array.prototype.includes ) { require( "core-js/fn/array/includes" ); }