ES6 / 8语法-箭头功能

问题描述 投票:0回答:1

以下两个虽然看起来像一样,但结果却不同。

1

const addBlogPost = dispatch => {
    return () => {
        dispatch({type: 'add_blogpost'});
    }
};

2

const addBlogPost = dispatch => dispatch({type: 'add_blogpost'});

谁能指出它们有何不同?

ecmascript-6 arrow-functions
1个回答
0
投票

结果将始终是相同的,因为两个函数正在重新调整同一件事。唯一的区别是:

  1. 在第一个函数中,您将返回一个函数,该函数返回一个返回dispatch函数的对象。
  2. 在第二个函数中,您将直接返回dispatch函数。

0
投票

您可以使用此site来将es6箭头函数编译为原始JS,以轻松看出差异。

[第一个编译为此

var addBlogPost = function addBlogPost(dispatch) {
  return function () {
    dispatch({
      type: 'add_blogpost'
    });
  };
};

second编译为此

var addBlogPost = function addBlogPost(dispatch) {
  return dispatch({
    type: 'add_blogpost'
  });
};

第一个返回具有调度的函数,第二个直接返回调度。

© www.soinside.com 2019 - 2024. All rights reserved.