functionName(function(){...})在JavaScript中做了什么?

时间:2015-07-20 08:50:56

标签: javascript

以下代码段中addHorizonLoadEvent(function() {...})的含义是什么?

addHorizonLoadEvent(function() {
    show_hide_datepickers();
});

3 个答案:

答案 0 :(得分:5)

addHorizonLoadEvent高阶函数 - 这意味着它不会期望非函数值(如数字或字符串),因为它&#39 ; s参数,但另一个函数。所以第一个参数是一个新函数,它将在某个时刻被原始函数调用(通常最后作为回调)。

function() {...}是一个匿名函数 - 一种表达函数的方法,不用绑定它就是名字。

答案 1 :(得分:1)

实际上,您将函数作为addHorizo​​nLoadEvent的参数。

你可以这样做:

var fooBar = function() {
   //alert("Alert2");
   show_hide_datepickers();
});

addHorizonLoadEvent(fooBar);

你给addHorizo​​nLoadEvent的函数参数只会使用一次,不需要给它起一个名字,所以它是一个匿名函数,直接在()中声明。

答案 2 :(得分:1)

此模式是一种称为匿名函数。

function_name(function() { 
    // Code
});

与写作相同

function my_function() {
    // Code
}
function_name(my_function);

意味着my_function作为参数传递给函数function_name