函数自调用就是函数内部运行再次调用函数本身运行,这意味着每一次函数运行都会触发函数再次运行,不用额外的调用函数
看个例子吧:
我们可以看到fn函数内部有两个语句一个打印666的语句和一个调用fn函数的语句,当外部调用的fn函数的语句运行后,fn函数运行打印666;此时再次运行fn函数的调用,先会在函数内部寻找fn函数,没找到就会去全局中找。所以会再次运行fn函数,再次打印666,再调用fn函数,一直无限循环下去。但是这样一直循环下去就会让浏览器超负荷,这不是我们想看到的,所以怎样解决呢?既要使函数循环运行,但是又不能无限循环运行。
这时我们就因该想到给函数自调用加一个判断条件,符合条件就自调用,不符合就不调用:
这样就能有效避免函数进入死循环
如果对函数自调用还是不理解,那就来看个例子吧,加深一下理解:
在fn函数中有一个if判断,当传入的实参小于1时就返回1,反之就返回这个实参的值×再次运行函数并传入实参值减一
多练习一下吧: