对函数式编程弄得不是很清楚,所以想请假一下下面这两种方法在实现上各有什么优劣点呢?// 闭包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}
1 回答
噜噜哒
TA贡献1784条经验 获得超7个赞
拿func1()来举例子
你两段代码的共同点是 执行func1()调用即执行了func1()的逻辑,又执行了doSomething的逻辑,
区别在于组织代码的时候在第二段代码里你将 doSomething()函数放在了 func1()里,而第一段
代码
function func1() { // func1 alert(a++); }function doSomething(func) { return function() { // do something... var a=10; return func } }var funca = doSomething(func1);
func1相当与闭包,你可以在func1里面访问doSomething这个函数实现逻辑过程中的所有数据,但是在第二段
代码里显然没有这个功能
添加回答
举报
0/150
提交
取消