对函数式编程弄得不是很清楚,所以想请假一下下面这两种方法在实现上各有什么优劣点呢?
// 闭包
function func1() {
// func1
}
function func2() {
// func2
}
function doSomething(func) {
return function() {
// do something...
return func
}
}
var func1 = doSomething(func1);
var func2 = doSomething(func2);
// 函数引用
function doSomething() {
// do something...
}
function func1() {
doSomething();
// func1
}
function func2() {
doSomething();
// func2
}
拿func1()来举例子
你两段代码的共同点是 执行func1()调用即执行了func1()的逻辑,又执行了doSomething的逻辑,
区别在于组织代码的时候在第二段代码里你将 doSomething()函数放在了 func1()里,而第一段
代码
func1相当与闭包,你可以在func1里面访问doSomething这个函数实现逻辑过程中的所有数据,但是在第二段
代码里显然没有这个功能