问题描述
在我的网站上使用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。