这两行代码之间的差异

时间:2016-11-16 17:58:27

标签: javascript

我正在学习更多ES6:

const _findCartItem = ( item ) => {
    return _cartItems.find( cartItem => cartItem.id === item.id);
};

转换为:

var _findCartItem = function _findCartItem(item){
    return _cartItems.find(function(cartItem){
        return cartItem.id == item.id;
    })
};

但是,这个与以下之间有区别吗?这种双重声明是否必要?

var _findCartItem = function(item){
    return _cartItems.find(function(cartItem){
        return cartItem.id == item.id;
    })
};

1 个答案:

答案 0 :(得分:3)

Conceitualy,不,两者都会这样做。从句法上讲,是的。第一个是将命名函数的引用传递给变量,第二个是匿名函数。

使用第一个选项是优先的,因为你得到了更好的调用堆栈。