猿问

请教大神一些问题。js问题

function jc(sum) {

         if(sum <= 1) { return 1; } else {

console.log(sum);//依次输出4,3,2  

                                return sum * arguments.callee(sum - 1);//想知道这段代码是怎么运行的。为什么arguments.callee(sum - 1)会有值。

}

}

jc(4);

艾伦的吉他
浏览 1136回答 1
1回答

学习js

arguments.callee在哪一个函数中运行,它就代表哪一个函数.在匿名函数中有时会需要自己调用自己,但是由于是匿名函数,没有名子,无名可调。这时就可以用arguments.callee来代替匿名的函数在这段代码里应该就带jc这个函数,所以jc(4)就是算4的阶乘
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答