JAVASCRIPT函数式编程
1.匿名函数
我们将首先介绍匿名函数。一个匿名函数就是一个没有名字的函数。
你可以认为他们是一次性函数。当你只需要用一次某个函数式,他们就特别有用。通过使用匿名函数,没有必要把函数一直放在内存中,所以使用匿名函数更加有效率。
例Example:
下面两个函数处理同样的事情,而average在给z赋值结束之后一直保留——但匿名函数则不会。
2.函数作为值
从这里可以得出一个结论,函数是一个值就像字符串、数字或数组一样。这还出现几个问题:
我是否可以把函数作为参数传递?
可以,见下面的例子。
是否可以实时生成函数?
当然了,这是一个高级的主题,它可以通过eval函数来完成。
例:
这个例子演示了如何把函数作为参数传递。
3.两种方式调用函数
在JavaScript中,有两种调用函数的方式。一般的方式是把参数放在括号中,如alert(42)。另一种方式是同时把函数和参数都放在括号中,如(alert)(42)。
例:
alert(42);
(alert) (42);
(function(x) { alert(x-13); }) (55);
为什么函数两边的括号很重要:如果你写了括号,那么在括号中的代码就会被先计算。在计算之后,括号所在的地方就会有一个值。这个值可能是一个字符串、一个数字或一个函数。
4.“短路”条件调用
现在我们将学习如何使用“短路”条件调用。使用这个方法可以缩短源代码同时代码也变得更加可读。
例:这个语法并不是用在左表达式上,而是用在右表达式上。
var f = false; var t = true;
var z;
if(f)
z = 4;
else if(t)
z = 2;
alert(z);
var f = false; var t = true;
var z = (f&&4)||(t&&2);
alert(z);
好处:
1.它有助于写出模块化和可服用的代码。
2.它对事件处理程序非常有效。
3.它很有趣!