gpt4 book ai didi

javascript - 我可以在函数声明中传递变量吗?

转载 作者:行者123 更新时间:2023-11-28 01:54:55 26 4
gpt4 key购买 nike

在 Objective C 中使用 block 时,可以使用定义 block 的函数内部可访问的所有变量。

这同样适用于定义为变量的 JavaScript 函数吗?

例如,successFunction当从 someOtherFunction 内部调用时,工作正常,因为它是在 beforeSaveFunction 内声明的?

var beforeSaveFunction = function(request, response) {

var successFunction = function(code) {
request.object.set("sessionAuthCode",code);
response.success();
}

someOtherFunction(successFunction);
}
<小时/>

或者我必须这样做并传递 someOtherFunction 内的变量:

var beforeSaveFunction = function(request, response) {

var successFunction = function(code, request, response) {
request.object.set("sessionAuthCode",code);
response.success();
}

someOtherFunction(successFunction, request, response);
}
<小时/>

如果选项 1 不起作用,是否有比选项 2 更简单的替代方案?

最佳答案

是的,这就是 JavaScript 闭包的工作原理。只要变量在定义函数的作用域内,调用它时它就在函数内的作用域内。

参见:How do JavaScript closures work?

关于javascript - 我可以在函数声明中传递变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19259464/

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