您的位置:首页 > Web前端 > JavaScript

用函数式编程技术编写优美的 JavaScript

2009-09-22 00:22 621 查看
在 JavaScript 中,可以编写匿名函数或没有名称的函数。为什么需要这样的函数?请继续往下读,但首先我们将学习如何编写这样一个函数。如果拥有以下 JavaScript 函数:
清单 3. 典型的函数
function sum(x,y,z) {

  return (x+y+z);

}

然后对应的匿名函数看起来应当如下所示:
清单 4. 匿名函数
function(x,y,z) {

  return (x+y+z);

}

要使用它,则需要编写以下代码: 清单 5. 应用匿名函数
var sum = function(x,y,z) {

  return (x+y+z);

}(1,2,3);

alert(sum);

使用函数作为值也可以将函数作为值使用。还可以拥有一些所赋值是函数的变量。在最后一个示例中,还可以执行以下操作:
清单 6. 使用函数赋值
var sum = function(x,y,z) {

  return (x+y+z);

}

alert(sum(1,2,3));

在上面 清单 6
的示例中,为变量 sum 赋的值是函数定义本身。这样,sum 就成了一个函数,可以在任何地方调用。调用函数的不同方法JavaScript 允许用两种方式调用函数,如清单 7
8
所示。 清单 7. 典型的函数应用
alert (“Hello, World!");

清单 8. 用函数作为表达式
(alert) (“Hello, World!");

所以也可以编写以下代码:清单 9. 定义函数之后就可以立即使用它
( function(x,y,z) { return (x+y+z) } ) (1, 2, 3);

可以在括号中编写函数表达式,然后传递给参数,对参数进行运算。虽然在 清单 8
的示例中,有直接包含在括号中的函数名称,但是按 清单 9
中所示方式使用它时,就不是这样了。 将函数作为参数传递给其他函数也可以将函数作为参数传递给其他函数。虽然这不是什么新概念,但是在后续的示例中大量的使用了这个概念。可以传递函数参数,如 清单 10
所示。 清单 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 的值。

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: