IE11中JS箭头函数报错:如何改写兼容代码?
兼容IE11的代码改写方案
当然可以解决!IE11对ES6语法的支持确实有限,箭头函数就是它不兼容的特性之一。咱们只需要把箭头函数换成传统的匿名函数写法,就能让代码在IE11里正常运行,功能逻辑完全保持一致。
修改后的完整代码
$.getJSON('./AJAX/myfile.json', function(data) { var items = []; var filter = $('#select').val(); var countryData = data.filter(function(el) { return el.selection === filter; }); });
关键修改点
你提到的问题点(el => el.selection === filter),只需要把这个箭头函数替换成标准的ES5匿名函数:
- 箭头函数的简洁写法
el => el.selection === filter,等价于带return语句的普通函数:function(el) { return el.selection === filter; } - 这个场景里没有涉及
this指向的问题,所以直接替换即可,外部变量filter的访问不会受影响。
额外提示
如果你的代码中还有其他ES6特性(比如let/const、模板字符串、解构赋值等),也需要一并转换成ES5语法才能在IE11中正常运行。不过在这个例子里,只有箭头函数是需要修改的部分。
内容的提问来源于stack exchange,提问作者Dirty Bird Design
相关产品推荐
相关产品推荐

