按照课程讲解,觉得babel-runtime还是有问题,没有解决全局污染的问题呀!
使用babel-runtime配置,可以使polyfill重写的方法不污染全局环境,
但相当于重命名方法,代码也是自动替换成新名称的方法。
注意,按课程中的执行结果,Promise被替换成了_Promise——带下划线
那么,如果使用方,真的自己将promise重写了,例如window.Promise = 'abc'
但使用babel-runtime后,其又被改为_Promise了!!!——这样,使用者的修改就无效了呀,还是冲突了。还不是污染了吗?
老师,按照babel-runtime的原理,始终会将代码替换成新的名称,这样,使用者的修改,也还是被替换了。则使用者白改了,这样不行吧。
此处还是不明白。觉得这样的方案没有解决污染,或者说还是带来了问题。