JavaScript非函数式编程语言,然而JavaScript中可以像操控对象一样操控函数,就是说可在JavaScript中应用函数式编程。
使用函数处理数组
map和reduce是ECMAScript5中的特性,要ECMAScript3中可以使用Array.prototype来定义(Array.prototype.map
)
高阶函数
高阶函数,即操作函数的函数,入参是一个或多个函数,出参是一个新函数。
<html>
<head>
<script type="text/javascript">
function mix(f,g) {
return function() {
return f.call(this, g.apply(this, arguments))
}
}
var square = function(x) { return x*x };
var sum = function(x,y) {return x+y};
var squareOfSum = mix(square, sum);
console.info(squareOfSum(2, 3))
</script>
</head>
<body>
</body>
</html>
记忆
可以将上次计算的结果缓存起来,这种技巧叫做“记忆”(memorization)
网友评论