如何使用参数调用回调函数

贾廷

我有这个主要功能,它需要1个字符串和2个回调函数作为参数。下面是代码。

function confirmYesNo(confirmMessage, confirmCallback, cancelCallback) {
    $("#yes-button").click(function () {
         confirmCallback(); //How do I pass confirmCallback arguments
    });
    ...
}

这是调用函数的方式

function confirmYesNoTest() {
    var confirmContent = "Some Message"
    var id = "1";
    confirmYesNo(confirmContent,
        function (id) { alert(id); }, //alerts undefined
        function () { alert("Cancel Clicked"); });
}

问题是,执行confirmCallback时,上面的id变量(设置为1)显示为“ undefined”。似乎与范围有关,但是我无法正常工作。

达林·迪米特罗夫(Darin Dimitrov)

回调不应包含任何参数。您可以在闭包中捕获ID:

function confirmYesNoTest() {
    var confirmContent = "Some Message"
    var id = "1";
    confirmYesNo(
        confirmContent,
        function () { alert(id); },
        function () { alert("Cancel Clicked"); }
    );
}

另外,如果您不想使用闭包,则可以将id作为参数传递给回调:

function confirmYesNo(confirmMessage, id, confirmCallback, cancelCallback) {
    $("#yes-button").click(function () {
         confirmCallback(id);
    });
    ...
}

并在调用时:

function confirmYesNoTest() {
    var confirmContent = "Some Message"
    var id = "1";
    confirmYesNo(
        confirmContent,
        id,
        function (id) { alert(id); },
        function () { alert("Cancel Clicked"); }
    );
}

现在,您可以将回调用作命名函数:

var confirmCallback = function(id) {
    alert(id);
};

接着:

function confirmYesNoTest() {
    var confirmContent = "Some Message"
    var id = "1";
    confirmYesNo(
        confirmContent,
        id,
        confirmCallback,
        function () { alert("Cancel Clicked"); }
    );
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用参数C#调用回调

来自分类Dev

用回调函数传递参数

来自分类Dev

单独调用回调函数?

来自分类Dev

如何创建和使用回调函数列表?

来自分类Dev

如何在Codeigniter中使用回调函数

来自分类Dev

使用回调函数调用Ajax服务

来自分类Dev

如何在Haskell中调用使用回调的C函数?

来自分类Dev

当绑定函数可以删除时如何安全使用回调

来自分类Dev

如何使用参数调用回调函数?

来自分类Dev

如何在ReactJS Hooks中使用回调函数

来自分类Dev

如何在JestJS中使用回调参数模拟函数

来自分类Dev

如何在JestJS中使用回调参数模拟函数

来自分类Dev

使用回调与传递自己的函数的javascript ajax调用

来自分类Dev

如何在Codeigniter中使用回调函数

来自分类Dev

如何使用回调创建jQuery函数

来自分类Dev

如何结束在Matlab中使用回调的函数?

来自分类Dev

jQuery每个:如何使用回调发送参数

来自分类Dev

AngularJS $ interval:使用回调函数作为传入函数的参数

来自分类Dev

AngularJS-使用指令调用回调函数?

来自分类Dev

如何在函数内部使用回调函数?

来自分类Dev

如何使用回调

来自分类Dev

javascript-使用参数调用回调

来自分类Dev

使用回调函数之外的参数值(未定义)

来自分类Dev

如何使用回调函数作为参数,其中有自己独立的参数?

来自分类Dev

For Await 循环结束后如何调用回调函数

来自分类Dev

如何使用回调函数实现承诺?

来自分类Dev

在函数回调中使用回调

来自分类Dev

使用回调参数获取匿名函数中的值

来自分类Dev

AngularJS 调用回调函数