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