gpt4 book ai didi

javascript - 将带参数的函数作为另一个函数的参数传递

转载 作者:行者123 更新时间:2023-11-30 08:51:46 27 4
gpt4 key购买 nike

有一些类似的问题,但我仍然很困惑。因为我的案例是 with params 作为另一个函数的参数的函数。

简单案例:

var who = 'Old IE',
dowhat = 'eat',
mycode = 'my code :(',
text = 'I dont know why';

function whathappen(who, dowhat, mycode) {
alert(who + dowhat + mycode);
}

function caller(text, func) {
alert(text);
func();
}

问题:如何做类似 caller(text, whathappen(who, dowhat, mycode)); 的事情?我不确定我们是否使用像 caller(text, function(){ ... } 这样的匿名函数(那个匿名函数会被调用两次吗?)

谢谢

最佳答案

要传递一个带参数执行的函数,您可以使用 lambda。 lambda 作为参数 func 传递。

示例:(这是 caller 的调用 - textwhodowhatmycode 是参数/变量。lambda 仍然可以访问 whodowhatmycode 因为 closures )

caller(text, function () {
whathappen(who, dowhat, mycode);
});

至于“那个匿名函数会调用两次吗?”,如果我明白你的意思,不会。也许你见过这样的语法

(function () {
...
})();

这是一个在创建后立即调用的 lambda(注意“调用”lambda 末尾的括号)。在第一个示例中,您仅创建并传递了匿名函数(函数在 Javascript 中为 first class objects)。

关于javascript - 将带参数的函数作为另一个函数的参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17256361/

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