将粗箭头功能转换为普通功能

时间:2019-05-19 19:49:59

标签: javascript

我很好奇为什么会这样

let updateCatInfo = e.sender.dataSource._data.find(x => x.CatalogID == catID );

无法转换为此

let updateCatInfo = e.sender.dataSource._data.find(function (x) { x.CatalogID == catID });

我问的原因是因为我正在使用.NET Web浏览器控件,并且由于某种原因,它不喜欢胖箭头功能(如第一个代码片段所示),并试图将其转换为第二个代码片段。但是第二个片段不起作用。

所以我要做的

for (let i = 0; i < e.sender.dataSource._data.length; i++) {
    if (e.sender.dataSource._data[i].CatalogID == catID) {
        updateCatInfo = e.sender.dataSource._data[i];
        break;
    }
}

对于所有使用粗箭头功能的查找功能

1 个答案:

答案 0 :(得分:3)

根据有关Arrow Functions > Function bod y的文档:

  

功能主体

     

箭头功能可以具有“简洁的正文”或通常的“块正文”。

     

在简洁的正文中,仅指定一个表达式,该表达式成为隐式返回值。在块体中,必须使用显式的return语句。

示例中的arrow函数具有简洁的主体格式,因此隐式返回了表达式(x.CatalogID == catID)。

使用函数表达式(或块体箭头函数)时,必须显式声明返回值:

let updateCatInfo = e.sender.dataSource._data.find(function (x) { return x.CatalogID == catID });