在 Javascript 和许多其他语言中,函数是“第一类对象”,这意味着您可以调用/执行函数,但您也可以将函数存储在变量或数组中,或者您可以将函数传递给另一个函数。
请注意,我不是在谈论传递调用函数产生的值……而是函数本身。考虑:
function test10(f) {
for (var i=0; i<10; i++)
alert(f(i));
}
function square(x) { return x*x*; }
function cube(x) { return x*x*x; }
test10(square);
test10(cube);
最后两行将函数 (square
和cube
) 作为参数传递给 function test10
。
该()
语法告诉 Javascript 您要进行调用,并且不仅可以与函数名称一起使用,还可以与变量或数组元素等任何表达式一起使用......例如:
var f_arr = [square, cube];
for (var i=0; i<2; i++)
alert(f_arr[i](i+42)); // Will call square(42) and cube(43)
实际上在Javascript中的代码
function square(x) {
return x * x;
}
不相同但相似
square = function(x) {
return x * x;
};
所以定义一个函数确实接近于分配一个变量