![](/img/trans.png)
[英]require('core-js/es6/map') polyfill not working for spread Map object on IE11
[英]ES6 Proxy Polyfill for IE11
IE11不会也不会实现ES2015代理对象。 然而,IE11的延长支持终止于2025年10月14日。
有没有办法为IE11 polyfill代理对象? 所有其他浏览器都支持Proxy。
如果是,那么我们今天都可以在生产中使用它。 如果没有,那么我们将不得不等待近十年......
编辑:我专门针对IE11,因为我知道IE通常具有我通常不知道的IE特定功能。
Edit2:我特别感兴趣的是能够实现一个全能拦截器。 类似于Python中的__getattr__
。 它只需要在IE11中工作。
关于Quora的这个问题有一个非常简洁的答案
代理需要在引擎级别上提供支持,并且无法对polyfill Proxy进行支持。
大多数主要的JS引擎尚未实现支持。 查看ECMAScript 6兼容性表 。
您可能希望使用Object.observe,可能使用Chrome浏览器以外的浏览器进行polyfill,但即使这样,该提案也已撤消,并且已宣布将在未来版本中将其从Chrome中删除。
我个人没有尝试过Object.observe解决方案,但它可能是一个很好的起点。
祝好运!
在不支持此功能的环境中直接解决填充ES6代理的问题,当然是不可能的 - 如果存储一些polyfill函数信息window.Proxy的意思。 但是如果这样思考,ES6的大多数现代功能都无法支持,因为它们会引发旧版ECMAScript引擎的语法错误。
这就是为什么你应该使用transpiler,它执行前面的ES6代码包装到特定的结构中,然后评估旧引擎上的转换代码。 在目前的情况下,只需使用一个Babel插件: https : //www.npmjs.com/package/babel-plugin-proxy
当然,在使用此解决方案时,您应该将Webpack配置为根据其功能集发现来隔离不同客户端代理/浏览器的目标包。 详情请见: https : //gist.github.com/newyankeecodeshop/79f3e1348a09583faf62ed55b58d09d9
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.