首页 > 关于javascript中return function()的问题?

关于javascript中return function()的问题?

varfun=function (){
    return function (input,findname){
       var out="";
        return out;
    };
});

各位这是什么意思啊!!晕了

为何不写成

var fun=function (input,findname){
var out="";
return out;
};

第一个,定义了一个函数,参数为空,返回值是一个函数。这个函数(返回值)接受2个参数,并返回字符串。

第二个,定义了一个函数,2个参数,返回值是一个字符串。

第一个:

var f = fun();
f(1, 2);

如果没特殊情况 ,像你下面那种写法也是可以的;

但是在有些时候 我们不想暴露一些特殊的数据,情况就不一样了

varfun=function (){
    var special='我是特殊的数据';//你想用到 special 但是又不想暴露special 数据到外层 
    //就需要用到 匿名函数 ,这也是匿名函数存在的理由之一
    return function (input,findname){
       var out=special;
        return out;
    };
});

//答案被踩 真心不知道为啥

【热门文章】
【热门文章】