我试图围绕JS的基础知识
const someFun = (name) => {
return (name) => {
console.log(name + 'yolo')
return name
}
}
const myName = someFun('Varun')
console.log(myName)
这正在返回(或记录)
(name) => {
console.log(name + 'yolo')
return name
}
为什么我希望它记录通过参数(varun)传递的名称。
有人可以解释我为什么吗?还有为什么我们需要一个函数return语句来拥有一个函数?
最后,我还看到(例如,在我的redux情况下)这样的代码
export const updateData = (updatedData) => {
return function (dispatch) {
这里,main函数将updateData作为参数,而return函数将dispatch作为参数(两者之间没有任何上下文)。有人也可以向我解释吗?
答案 0 :(得分:2)
为什么我希望它记录作为参数(varun)传递的名称。
someFun
一个返回函数的函数。完全不使用name
参数。
如果您调用了返回的函数,那么那个将返回name
参数的值。 (请注意,返回的函数定义了自己的名为name
的自变量,因此可以在someFun
中使用它。)
为什么我们需要一个函数return语句才能拥有一个函数?
您没有,但是如果您没有return语句,则该函数将返回未定义。
这里,main函数将updateData作为参数,而return函数将dispatch作为参数(两者之间没有任何上下文)。有人也可以向我解释吗?
他们使用不同的变量名作为参数。就是这样。
这很有用,因为嵌套函数不会掩盖外部函数的变量,因此可以在嵌套函数内部对其进行访问。
function updateData(updatedData) {
return function (dispatch) {
console.log({updatedData, dispatch});
}
}
const returned_function = updateData(1);
returned_function(2);
returned_function(3);