如何修改箭头函数兼容IE11?map方法改普通函数报错怎么解决?
问题原因
- 普通函数未显式添加返回值:箭头函数的单行简写语法默认隐式返回表达式结果,改为普通函数包裹在
{}中后,必须手动写return返回对应值,否则map遍历得到的数组元素全是undefined,触发后续逻辑报错。 - 模板字符串不兼容IE11:代码中
${n}属于ES6模板字符串语法,IE11本身不支持该特性,即便修正了箭头函数的问题,在IE11中仍然会抛出语法错误,需要改为传统字符串拼接写法。
修正后的完整代码
$('.text-slider').on('beforeChange', function(event, slick, currentSlide, nextSlide){ let selectors = [nextSlide, nextSlide - slick.slideCount, nextSlide + slick.slideCount].map( function(n) { return '[data-slick-index="' + n + '"]' } ).join(', '); $('.shimmer2').removeClass('shimmer2'); $(selectors).addClass('shimmer2'); });
额外兼容提示
- 若需要完全适配IE11,建议将代码中的
let关键字替换为var,避免IE11对块级作用域变量声明的兼容问题。
内容的提问来源于stack exchange,提问作者LBF
相关产品推荐
相关产品推荐

