项目场景:`
低版本浏览器访问我们系统时出现一下Object.Array
原型上的方式不存在xxx is not a dunction
,我们就需要打补丁。
原因分析:
低版本浏览器不支持ES5,ES6.。。。的写法
解决方案:
- 下载babel-polyfill
工程化环境下我们可以直接下载依赖:
npm i babel-polyfill -S
- 引入,在入口js文件中引入(例如vue,main.js的首行)
import 'babel-polyfill'
优点:可以一次性全局引入所有方法
缺点:没有使用的方法也会导入,会稍微增大打包后的js文件体积,但是可以下载babel-preset-env和useBuiltIns通过控制环境版本按需加载。
问题:想用新的es13的新方法,例如Array.prototype.at等。。。,这个polyfill里好像木有,自己写了一个,不知道是不是babel版本等其他的问题,但是问题解决了,后面自己在研究,知道的大神可以告诉我一下,谢过。
省流:直接引入core-js,但是会增加包体积
if (!Array.prototype.at) {
Array.prototype.at = function(index) {
if (index >= 0) {
return this[index]
} else {
return this[this.length + index]
}
}
}