Я понимаю разницу между babel-runtime и babel-polyfill в том, что первая не заполняет глобальную область видимости, а вторая — заполняет. Я думаю, что babel-runtime безопаснее, но я не могу понять, что это значит и как это влияет на меня:
ПРИМЕЧАНИЕ. Методы экземпляра, такие как "foobar".includes("foo"), не будут работать, так как это потребует модификации существующих встроенных модулей (для этого используйте babel-polyfill).
Насколько я понимаю, методы экземпляра похожи на map, filter, reduce
, потому что они вызываются для существующего объекта. Какой пример из этого не будет проверен средой выполнения Babel? :
//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-polyfill в своем проекте на babel-runtime, так как он должен был быть лучше, но теперь я не уверен, что безопасно использовать.