
56
|
第
3
章
这是一个非常简单的合成函数示例,主要用于演示合成技术。当需要处理一个以上
的参数或者非函数的参数时,函数会变得更复杂。合成技术的其他实现也许会用到
reduceRight
方法,
注
5
其中合成的函数是逆序调用的。
综合应用
现在我们已经介绍过函数式编程的核心概念,接下来让我将这些概念应用到实际工作
中,构建一个小型的
JavaScript
应用。
因为
JavaScript
可以让用户从函数式编程范式中解脱出来,并且用户也不必循规蹈
矩,关注重点即可。遵循下列三个简单的规则将有助于帮助用户达成目标:
1.
保持数据的不可变性。
2.
确保尽量使用纯函数,只接收一个参数,返回数据或者其他函数。
3.
尽量使用递归处理循环(如果有可能的话)。
我们的目标是构建一个滴答作响的时钟。时钟需要显示小时、分钟、秒,以及当地时
间的日期。
每个字段必须保证是双位数字,这意味在类似
1
或者
2
这样的单位数字时,需要在它们
前面加上
0
来补足位置。时钟必须发出嘀嗒声并且显示每秒的时间变化。
首先,让我们看看使用命令式风格编写的显示时钟的方案。
//
记录每秒的时钟状态变化
setInterval(logClockTime, 1000);
function logClockTime() {
//
获取本地时间格式的时钟时间字符串
var time = getClockTime();
//
清空控制台并记录时间
console.clear();
console.log(time);
}
function getClockTime() {