使用匿名函数和存储在变量中的函数作为回调参数JavaScript

时间:2014-08-13 23:44:34

标签: javascript callback

我并不完全清楚这是什么意思。我想我的问题是,如果有人能为我清除这一点。到目前为止我从回调中得到的结论:

function Hello(Callback,a,b){
Callback(a,b);
}

function Hi(a,b){
alert("Hi " + a + b);
}

Hello(Hi,5,6);

1 个答案:

答案 0 :(得分:1)

在JavaScript中,函数就像字符串和数字一样是对象,因为该功能可以将函数作为变量传递给其他函数。

function Hello(Callback,a,b){
Callback(a,b);
}

function Hi(a,b){
alert("Hi " + a + b);
}

Hello(Hi,5,6);

在你的代码片段中,声明一个名为Hello的函数,它接受三个参数。然后,Hello函数将“将Callback作为函数调用”,实际执行在给定最后一行代码时传递的Hi函数。

你必须小心使用函数,特别是使用“this”。由于“this”指的是自包含对象,“this”实际上将在某些上下文中引用该函数。

但是,这不是匿名函数。您示例的修改版本:

function Hello(Callback, a, b){
   Callback(a,b);
}
Hello(function(a,b){
  alert("Hi " + a + b);
}, 5, 6);

传入的函数是Anonymous,它没有命名(JavaScript引擎会给它一个唯一的名称,但它看起来不太漂亮)。