![](/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.