gpt4 book ai didi

Javascript 回调函数 - 如何填充参数

转载 作者:行者123 更新时间:2023-11-28 18:55:39 25 4
gpt4 key购买 nike

据我所知,回调是作为参数传递给另一个函数的函数,例如下面的简单示例:

function operation(a,b, callback) {
return callback(a,b);
}

function add(a,b) {
return a+b;
}

function multiply(a,b) {
return a*b;
}

console.log(operation(5,4,add)); // 9
console.log(operation(5,4,multiply)); // 20

回调函数让我非常困惑的是它们在链式函数调用中使用的情况,如下所示:

// Angular example
$http.get(...).then(function(req,res) {
// some actions here
});

// JQuery example
$( "li" ).each(function( index ) {
// some actions here
});

在这两个示例中,匿名函数中的参数是如何填充的?这是否与我在操作函数示例中给出的回调逻辑有任何关系,或者这完全是其他概念?

我对 Angular 示例的最佳猜测是,http Promise 返回一个数组对象 [req,res],并且函数参数按顺序从数组中提取。

我特别感兴趣的是如何以这种风格定义我自己的链式函数调用。我如何定义类似的东西:

myObject.performAction(function(param1, param2, param3) {
// do stuff
});

如果有人能举一个这样的例子,那将非常有启发性。

最佳答案

参数由调用代码传递给回调函数 - 与示例中相同return callback(a,b);

var myObject = {
a: 1,
b: 2,
c: 3,
performAction: function(callback) {
callback(this.a, this.b, this.c);
}
};

myObject.performAction(function(param1, param2, param3) {
// do stuff
});

关于Javascript 回调函数 - 如何填充参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33684934/

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