我明白,第一个不填充全球范围内,而后者则巴贝尔运行时和巴别塔,填充工具之间的区别工作。我认为巴贝尔,运行更安全hovewer我不明白这意味着什么,以及它如何做的效果我:巴别塔运行时将不会在实例方法
注:实例方法,如“foobar的” .includes(“富”)将不会因为这项工作将需要修改现有的内置插件(使用babel-polyfill)。
据我了解实例方法就像map, filter, reduce
,因为他们被称为现有的对象。哪个示例不会被babel-runtime污染? :
//1
['aa', 'bb', 'cc'].forEach(console.log);
//2
const arr = ['aa', 'bb', 'cc'];
arr.forEach(console.log);
//3
const entries = Object.entries(someObj).filter(([key, value]) => key.startsWith('hello'));
//4
const map = new Map();
//5
var s = new Set(["foo", window]);
Array.from(s);
我该如何正确识别实例方法?
我在项目通天塔运行时所取代巴贝尔,填充工具,因为它应该是更好的,但现在我不知道什么是可以放心使用。
然后好像它总是安全使用填充工具,因为运行时会在一种情况下工作,而不是其他。仍然困惑为什么冒险使用Babel运行时可能会失败。无论如何感谢您的详细解答。 – Tomasz
在我们做与IE9的工作非常旧的应用程序,也有很多JavaServerFaces RichFaces组件(很旧的东西),它们被修补,并在多个地方砍死(与JS)这个老浏览器的工作。如果你现在加入了babel-polyfill,那么这些JSF组件中的一些就会崩溃,因为polyfill会修补许多(很多)事物。因此,在这种情况下使用babel-polyfill是不可接受的,但使用babel-runtime是可以接受的,因为这不会破坏我们旧的JSF组件,但是你是对的,这可能会失败。如果有帮助,请随时接受答案:) – dalvarezmartinez1