1

自从我不断学习JavaScript并开始更认真地使用以来,我已经有将近半年的时间了。JS 具有类似 C 的语法和其他部分,如闭包、动态类型、可选参数等。

我仍然看不到他强大的语言功能是:返回函数的函数

function func(){
   return function(){
       ....
      return result;
   };
};


func()();

这很酷,我知道这是函数式语言的正常特性,但我从未在现实世界中使用过,我想知道你们中的任何人都必须更多地使用这种方法,以及在哪些情况下才能显示出他的真正力量。

我还在jsFiddle上做了一个小例子。

4

2 回答 2

1

它在绑定事件时很有用。例子:

var element1 = document.getElementById('element1');
var element2 = document.getElementById('element2')

element1.addEventListener('click', someEventHandler('action1'));
element2.addEventListener('click', someEventHandler('action2'));

function someEventHandler(act){
    return function(e){
       switch (act){
           case 'action1':
               // do something;
           break;
           case 'action2':
               // do other thing
           break;
       }
    }
}

小提琴

于 2013-04-25T07:26:40.500 回答
1

另一个用例:为第一次和后续运行执行不同操作的函数:

function test() {
    alert("the first call");
    test = function() {
        alert("new function");
    }
}
于 2013-04-25T07:32:32.143 回答