Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript回调函数中的替代项以及如何使用它们_Javascript_Json_Dom Events - Fatal编程技术网

JavaScript回调函数中的替代项以及如何使用它们

JavaScript回调函数中的替代项以及如何使用它们,javascript,json,dom-events,Javascript,Json,Dom Events,我知道Stack Overflow中的方向是询问您想要什么,并没有说明您希望如何完成,但我真的不知道如何以更好的方式询问,而且我不是Javascript专家。。。所以我们走吧 假设我们有以下Javascript函数及其各自的输出 function func_a(param_a, param_b, param_c) { alert(param_a); alert(param_b); alert(param_c); } function func_b(func_to_run

我知道Stack Overflow中的方向是询问您想要什么,并没有说明您希望如何完成,但我真的不知道如何以更好的方式询问,而且我不是Javascript专家。。。所以我们走吧

假设我们有以下Javascript函数及其各自的输出

function func_a(param_a, param_b, param_c) {
    alert(param_a);
    alert(param_b);
    alert(param_c);
}

function func_b(func_to_run) {

    // Will call "func_a" HERE!
    func_to_run("a", "b", "c");
}

func_b(func_a);

// a
// b
// c
我的问题是:

当我们将参数作为函数“func_b”的参数传递给函数“func_a”时,是否有正确和/或更好的方法来传递参数

如何将参数传递给函数“func_b”调用中的函数“func_a”?下面我将给你一个假设的例子

function func_a(param_a, param_b, param_c) {
    alert(param_a);
    alert(param_b);
    alert(param_c);
}

function func_b(func_to_run) {
    func_b_param = "z";

    // Will call "func_a" HERE!
    func_to_run(value_from_func_b_call, value_from_func_b_call, func_b_param);
}

// Third parameter deliberately empty!
func_b(func_a("a", "b", ));

// a
// b
// z

我不知道我是否解释清楚了!如果有任何疑问或改进建议,请告诉我

您可以将参数传递给func_b:

function func_a(param_a, param_b, param_c) {
    alert(param_a);
    alert(param_b);
    alert(param_c);
}

function func_b(func_to_run, param1, param2) {
    func_b_param = "z";

    // Will call "func_a" HERE!
    func_to_run(param1, param2, func_b_param);
}

// Third parameter deliberately empty!
func_b(func_a, "a", "b");

虽然这是一个又快又脏的答案,但如果我们对你想要达到的目标有更好的了解,也许会有更好的答案。特别是使用新的ES6语法和扩展运算符。

您可以将参数传递给func_b:

function func_a(param_a, param_b, param_c) {
    alert(param_a);
    alert(param_b);
    alert(param_c);
}

function func_b(func_to_run, param1, param2) {
    func_b_param = "z";

    // Will call "func_a" HERE!
    func_to_run(param1, param2, func_b_param);
}

// Third parameter deliberately empty!
func_b(func_a, "a", "b");

虽然这是一个又快又脏的答案,但如果我们对你想要达到的目标有更好的了解,也许会有更好的答案。尤其是新的ES6语法和扩展运算符。

这就是您要找的吗

function func_a(param_a, param_b, param_c) {
    alert(param_a);
    alert(param_b);
    alert(param_c);
}

function func_b(func_to_run, a, b) {
    func_b_param = "z";

    // Will call "func_a" HERE!
    func_to_run(a, b, func_b_param);
}


func_b(func_a, a, b);

这就是你要找的吗

function func_a(param_a, param_b, param_c) {
    alert(param_a);
    alert(param_b);
    alert(param_c);
}

function func_b(func_to_run, a, b) {
    func_b_param = "z";

    // Will call "func_a" HERE!
    func_to_run(a, b, func_b_param);
}


func_b(func_a, a, b);
如何将参数传递给函数中的函数“func_a” “func_b”电话

如果正确解释问题,您可以将对象作为参数传递给
func_b
,其中属性设置为1)要调用的函数;2) 将参数作为数组传递给要调用的函数;3) 传递给调用的函数中要调用的函数

您可以使用
Reflect.apply()
调用要调用的外部函数,可以选择在外部函数中设置
this
;pass和array,第一个元素是要调用的内部函数,例如,
func\u b
,第二个元素是调用函数的参数,前面是扩展元素

在要调用的外部函数的第一个参数中,定义表示要调用的内部函数的参数;在第二个参数处,定义rest参数
func_a
,表示传递给要调用的内部函数的参数

函数func_a(fn,…args){ for(让arg中的arg)fn(arg) } 函数func_b(函数到运行){ //我会在这里叫“func_a”! Reflect.apply(func_to_run.fn,null,[func_to_run.innerFn,…func_to_run.args]); } func_b({ fn:func_a, innerFn:警报, args:[“a”、“b”、“c”] }); 如何将参数传递给函数中的函数“func_a” “func_b”电话

如果正确解释问题,您可以将对象作为参数传递给
func_b
,其中属性设置为1)要调用的函数;2) 将参数作为数组传递给要调用的函数;3) 传递给调用的函数中要调用的函数

您可以使用
Reflect.apply()
调用要调用的外部函数,可以选择在外部函数中设置
this
;pass和array,第一个元素是要调用的内部函数,例如,
func\u b
,第二个元素是调用函数的参数,前面是扩展元素

在要调用的外部函数的第一个参数中,定义表示要调用的内部函数的参数;在第二个参数处,定义rest参数
func_a
,表示传递给要调用的内部函数的参数

函数func_a(fn,…args){ for(让arg中的arg)fn(arg) } 函数func_b(函数到运行){ //我会在这里叫“func_a”! Reflect.apply(func_to_run.fn,null,[func_to_run.innerFn,…func_to_run.args]); } func_b({ fn:func_a, innerFn:警报, args:[“a”、“b”、“c”]
});什么是要运行的功能?您是否试图传递与要使用这些参数调用的函数相对应的函数引用和函数参数?@guest271314是!确切地据我目前所知,这似乎不是一个好主意!谢谢大家!=D@BrianTompsett感谢您对问题的改进=什么是运行的功能?您是否试图传递与要使用这些参数调用的函数相对应的函数引用和函数参数?@guest271314是!确切地据我目前所知,这似乎不是一个好主意!谢谢大家!=D@BrianTompsett感谢您对问题的改进=你的答案很有效!它为我提供了关于我将要走的道路的指导和信息!我相信我能做的任何事情都需要朝着这个方向!很高兴帮助你!你能接受这个答案吗?你的答案是有效的!它为我提供了关于我将要走的道路的指导和信息!我相信我能做的任何事情都需要朝着这个方向!很高兴帮助你!你能接受这个答案吗?我相信我能做的任何事情都是朝着这个方向!谢谢我相信我能做的任何事情都能朝着这个方向发展!谢谢非常老练!所以我们在其他方面也有更多的灵活性!现在我将考虑一个更明显的方法。非常感谢。非常老练!所以我们在其他方面也有更多的灵活性!现在我将考虑一个更明显的方法。非常感谢。