js匿名函数自调用

JavaScript09

js匿名函数自调用,第1张

对于一个js匿名函数

自调用这个匿名函数

这样解释器会报错

为什么呢? 原因可以看一个普通js函数的调用

这是一个函数声明,如果在这么一个声明后直接加上括号调用,解析器不能理解而会报错:

而a函数申明时候,调用就可以直接加 ()

这里可以看出无论是命名函数还是匿名函数,都是函数申明,而直接对匿名函数加 () 之后,解释器就不能理解而报错了

要自调用匿名函数,就需要把匿名函数声明语句变成一个表达式

function Calc(val){

function multi(a,b){

return a*b

}

function fun(v){

if(v<=1){

return 1

}

//调用自身,递归

return multi(v,fun(v-1))

}

return fun(val)

}

console.log("3的阶乘是:"+Calc(3))