用{}中断IE 11

问题描述

在我的网站上使用slideToggle作为变量时出现问题。我正在使用domSlider。当我尝试以下操作时,我遇到了无法理解的问题。

如果将slideToggle定义为:

var {slideToggle} = window.domSlider;

我在IE 11中获得了SCRIPT1010: Expected identifier,但可以在Chrome和现代浏览器中使用。

如果我将其定义为:

var slideToggle = window.domSlider;

我在Chrome和其他现代浏览器中得到Uncaught TypeError: slideToggle is not a function。但是IE 11中没有错误。

我不知道是什么原因造成的,以及如何从这里继续前进。

解决方法

IE11不支持解构分配:Browser_compatibility

var { slideToggle } = window.domSlider;

将是:

var slideToggle = window.domSlider.slideToggle;

要在IE11中工作,或者您可以直接使用window.domSlider.slideToggle

,

var { item } = func()构造称为 destructuring 。较旧的Redmond中学科学计划(IE11)不支持该计划;这是他们停止在IE上使用后产生的javascript版本。

如果您要定位IE,请滚动到MDN页面底部,描述该功能。对于您的示例,https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#会说明哪些浏览器支持该功能。

还有一个名为CanIUse.com的网站,其中逐个功能提供有关浏览器支持的信息。

有一个名为Babel的编译器(将新的javascript变成旧的编译器)。你可以试试看。但是,对于SO的答案,解释如何在您的项目中进行装配实在太多了。

欢迎来到为不良旧版浏览器开发代码的美好世界。微软有充分的理由放弃自己的浏览器开发并采用Chromium。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...