在javascript中,函数也是一个特殊的值,它的数据类型是object,函数可以作为参入传入函数中,也可以作为返回值。
下面看一下函数作为返回值的情况
// 表达式声明方式一个函数
var f2 = function(){
console.log(200);
return 300;
}
// 函数可以作为另一个函数的返回值
// 把函数f2作为返回值
function f3(){
return f2;// 不带括号返回的是一个函数;
//return f2(); // f2带了括号,表示返回的是函数f2的执行结果,相当于return 300;
// var b = f2();//f2带了括号
// return b;//b=f2的执行结果,相当于return 300;
}
//由于f3中,f2后面没有小括号,所有f2函数没有被调用,而是直接将函数作为一个值返回了
var res = f3();//调用f3得到的是f2,f2是函数
console.log(res);//这样输出的是f2函数
console.log(res());//这样调用了f2,先输出200,f2又返回300,又输出300
请大家认真理解以上逻辑,因为在今后我们会经常看到这种用法。
|