gpt4 book ai didi

javascript - 将函数及其参数存储在数组中以供以后调用

转载 作者:行者123 更新时间:2023-11-29 10:32:23 24 4
gpt4 key购买 nike

我想将多个函数及其参数存储在一个数组中,稍后我将循环执行该数组。当将参数放在括号中时,函数会立即执行并且其数组值变为未定义。我想防止这种情况发生并在以后调用函数(及其参数)。这是我正在尝试完成的示例...

function getTableAssignments(callbacks) {
$.ajax({
method: "POST",
datatype: "jsonp",
url: base_url + "users/getTableAssignments/" + event_id
}).done(function (data) {
tables = data;
if (callbacks.length > 0) {
$.each(callbacks, function (i, v) {
v();
});
}
});
}
getTableAssignments([func1(param1, param2), func2, func3(param3)]);

最佳答案

存储参数是个问题。以下是存储函数引用的方法:

getTableAssignments([func1, func2, func3]);

这里是如何在执行之前将参数绑定(bind)到函数。这将返回一个新函数。还有其他方法可以做到这一点,但我认为这是最简单的。

var boundFunc1 = func1.bind(null, param1, param2);
var boundFunc3 = func3.bind(null, param3);

getTableAssignments([boundFunc2, func2, boundFunc3]);

您还可以将参数作为数组存储在对象中,并使用函数名称查找那些存储的参数,但这看起来很困惑,所以我不会详细说明该方法(并且它需要您将调用更改为对查找参数进行编码)。

如果你还没有读过 bind,我推荐这个 video

关于javascript - 将函数及其参数存储在数组中以供以后调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42819653/

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