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
)作为参数起作用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;
};
因此定义一个函数确实接近于分配一个变量
hideAll是一个变量,它正在尝试函数。和hideAll();是执行功能。 – Shreedhar 2012-07-27 07:20:42