Var with {} 中断 IE 11

Var with {} break 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() 构造称为 解构。旧的 Redmond Middle School Science Project (IE11) 不支持它;它来自 javascript 他们停止使用 IE 后的版本。

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

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

有一个转译器(将新 javascript 转换为旧的编译器)称为 Babel。你可以试试看。但是解释如何在您的项目中装配它对于 SO 答案来说太多了。

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