需要代码说明Javascript用于将函数赋值给常量

And*_*ild 0 javascript react-redux

嗨,我有以下基于React-Redux的代码剪断,不明白以下行:

const List = connect(mapStateToProps)(ConnectedList);
Run Code Online (Sandbox Code Playgroud)

我会理解一个函数被分配给List常量,如果它看起来像:

const List = connect(mapStateToProps);
Run Code Online (Sandbox Code Playgroud)

但是这个声明中的(ConnectedList)会产生什么影响?发生了什么的技术名称?


完全剪断:

import React from "react";
import { connect } from "react-redux";
const mapStateToProps = state => {
  return { articles: state.articles };
};
const ConnectedList = ({ articles }) => (
  <ul className="list-group list-group-flush">
    {articles.map(el => (
      <li className="list-group-item" key={el.id}>
        {el.title}
      </li>
    ))}
  </ul>
);
const List = connect(mapStateToProps)(ConnectedList);
export default List;
Run Code Online (Sandbox Code Playgroud)

Thi*_*ter 5

connect(...)返回一个函数(正如您已经意识到的那样),因此connect(...)(ConnectedList)调用connect()with 返回的函数ConnectedList作为其参数.

更长的版本是:

const tmp = connect(mapStateToProps);
const List = tmp(ConnectedList);
Run Code Online (Sandbox Code Playgroud)

由于您要求提供技术名称:通常返回另一个函数的函数称为高阶函数.