gpt4 book ai didi

javascript - 函数返回函数

转载 作者:行者123 更新时间:2023-12-01 01:00:29 25 4
gpt4 key购买 nike

我试图了解 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)。

有人可以解释一下为什么吗?为什么我们需要一个函数返回语句来拥有一个函数?

最后,我还看到(例如,在我的 redux 中)一个如下所示的代码

export const updateData = (updatedData) => {
return function (dispatch) {

这里主函数将 updateData 作为参数,但返回函数将调度作为参数(中间没有任何上下文)。有人能给我解释一下吗?

最佳答案

Whereases I was expecting it to log name passed as parameter (varun).

someFun 一个返回函数的函数。它根本不对 name 参数执行任何操作。

如果您调用返回的函数,那么that将返回name参数的值。 (请注意,返回的函数定义了自己的带参数的名称 name,因此这将成为 someFun 中的函数)。

why do we need a function return statement to have a function?

你没有,但如果你没有 return 语句,那么该函数将返回 undefined。

Here the main function takes updateData as a parameter but return function which takes dispatch as parameter (without any context in between). Can someone explain me this as well?

它们的参数使用不同的变量名称。仅此而已。

这很有用,因为嵌套函数不会屏蔽外部函数的变量,因此可以在嵌套函数内部访问它。

function updateData(updatedData) {
return function (dispatch) {
console.log({updatedData, dispatch});
}
}

const returned_function = updateData(1);
returned_function(2);
returned_function(3);

关于javascript - 函数返回函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56128188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com