如何使这个特定的箭头功能在所有浏览器中工作?

时间:2017-07-03 07:35:27

标签: javascript jquery angularjs

我从互联网上复制了一个功能。我不知道从哪里复制它。 但是,我今天在多个浏览器上测试代码,并在IE中遇到了sytax错误。

以下代码是麻烦制造者:

Object.keys($location.search()).forEach((key) => ($location.search()[key] == null || $location.search()[key] == "") && $location.search([key], null));

这段代码删除了keys,而没有角度$location对象中的值。

快速谷歌搜索后,我发现所有浏览器都不支持arrow functions。另请参阅此question

我尝试用简单的=>替换=。但这并不起作用。

我现在的问题是,如何让上述代码在所有浏览器中运行?

3 个答案:

答案 0 :(得分:2)

要替换箭头函数,您不能只使用=,您需要使用常规函数语句,如:

(param) => {
  //code block 
}

function(param) {
  //code block
}

答案 1 :(得分:2)

您可以自己将其转换为function或使用Babel之类的内容为您执行此操作

Object.keys($location.search()).forEach(function (key) {
    return ($location.search()[key] == null || $location.search()[key] == "") && $location.search([key], null)
});

答案 2 :(得分:1)

只需使用匿名函数(请参阅forEach上的文档):

Object.keys($location.search()).forEach(function (key) {
    return ($location.search()[key] == null || $location.search()[key] == "")
            && $location.search([key], null);
});