参见:
http://www-128.ibm.com/developerworks/cn/web/wa-javascript.html
下面对 JavaScript 中的函数式风格作一快速总结:
- 函数并不总是需要名称。 (匿名函数)
- 函数可以像其他值一样分配给变量。
- 函数表达式可以编写并放在括号中,留待以后应用。
- 函数可以作为参数传递给其他函数。
在 JavaScript 中,可以编写匿名函数或没有名称的函数。为什么需要这样的函数?请继续往下读,但首先我们将学习如何编写这样一个函数。如果拥有以下 JavaScript 函数:
典型的函数
function sum(x,y,z) {
return (x+y+z);
}
|
然后对应的匿名函数看起来应当如下所示:
匿名函数
function(x,y,z) {
return (x+y+z);
}
|
要使用它,则需要编写以下代码:
var sum = function(x,y,z) {
return (x+y+z);
}(1,2,3);
alert(sum);
|
使用函数赋值
也可以将函数作为值使用。还可以拥有一些所赋值是函数的变量。在最后一个示例中,还可以执行以下操作:
var sum = function(x,y,z) {
return (x+y+z);
}
alert(sum(1,2,3));
|
在上面的示例中,为变量 sum 赋的值是函数定义本身。这样,sum 就成了一个函数,可以在任何地方调用。
JavaScript 允许用两种方式调用函数
alert (“Hello, World!"); |
或
函数表达式
(alert) (“Hello, World!"); |
所以也可以编写以下代码:
( function(x,y,z) { return (x+y+z) } ) (1, 2, 3);// 定义函数之后就可以立即使用它
|
函数可以作为参数传递给其他函数
也可以将函数作为参数传递给其他函数。虽然这不是什么新概念,但是在后续的示例中大量的使用了这个概念。可以传递函数参数,如 清单 10 所示。
var passFunAndApply = function (fn,x,y,z) { return fn(x,y,z); };
var sum = function(x,y,z) {
return x+y+z;
};
alert( passFunAndApply(sum,3,4,5) ); // 12
|
执行最后一个 alert 语句输出了一个大小为 12 的值。
207

被折叠的 条评论
为什么被折叠?



