Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 链式箭头函数语法_Javascript_Reactjs - Fatal编程技术网

Javascript 链式箭头函数语法

Javascript 链式箭头函数语法,javascript,reactjs,Javascript,Reactjs,fetch功能中的dispatch是什么url是第一个单参数fetch函数。但是这里的分派是什么?这相当于一个函数返回另一个函数。就是这个, const fetch = url => dispatch => { // ... } export const fetchQuestions = tag => (dispatch) => { return dispatch(fetch(tag)); }; 相当于 const fetch = url => disp

fetch
功能中的
dispatch
是什么
url
是第一个单参数
fetch
函数。但是这里的分派是什么?

这相当于一个函数返回另一个函数。就是这个,

const fetch = url => dispatch => {
  // ...
}

export const fetchQuestions = tag => (dispatch) => {
  return dispatch(fetch(tag));
};
相当于

const fetch = url => dispatch => {
    // ...
}
export const fetchQuestions = tag => (dispatch) => {
  return dispatch(fetch(tag));
};

同样地

const fetch = function(url) {
    return function(dispatch) {
        // ... 
    }
}
相当于

const fetch = url => dispatch => {
    // ...
}
export const fetchQuestions = tag => (dispatch) => {
  return dispatch(fetch(tag));
};

dispatch
url=>…
函数返回的函数的第一个也是单个参数。如果使用正常的函数语法,则

export const fetchQuestions = function(tag) {
    return function(dispatch) {
        return dispatch(fetch(tag));
    }
};

这是一种较短的编写函数的方法,
返回另一个函数
。参数
url
dispatch
的参数,ES5相当于箭头函数语法

const fetch = function(url) {
    return function(dispatch) {...}
}
或者使用箭头语法作为

function fetch(url) {
    return function(dispatch) {
         ....
    }
}
export function fetchQuestions(tag) {
     return function(dispatch){
            return dispatch(fetch(tag));
     }
}
类似地,您也可以将
fetchQuestion
编写为

const fetch = (url) => {
    return (dispatch) => {
        // ... 
    }
}
或者使用箭头语法作为

function fetch(url) {
    return function(dispatch) {
         ....
    }
}
export function fetchQuestions(tag) {
     return function(dispatch){
            return dispatch(fetch(tag));
     }
}

fetch
是一个名为函数表达式,它接受
url
参数,并返回一个接受
dispatch
参数的新函数

您可以使用传统函数语法重写:

export const fetchQuestions = (tag) => {
    return (dispatch) =>  {
        return dispatch(fetch(tag));
    }
};

这叫咖喱。用谷歌搜索,你可以看到它的运行。有些es6=>es5转换器在线。试试这个例子:。在编辑器中粘贴代码并单击“Transform”将根据您的代表对此进行否决,但我意识到您没有参与JavaScript。为什么需要嵌套这样的函数?