JS基础--函数的自调用

文章目录

  • 一、什么是函数的自调用
  • 二、函数自调用的案例
    • 补充知识点:arguments
    • 对象中的函数的自调用方法
    • 自调用函数的自调用


一、什么是函数的自调用

可以理解为函数自己调用自己,也就是在函数内部放入调用这个函数的代码。在函数运行时执行调用代码,可以一直循环调用这个函数。
例如:

			var a=100
			function fn () {
				console.log(666)
				fn()
			}			
			fn()  

这会无限循环打印666,会导致电脑卡死。
解决方法添加条件判断语句
例如:

		            let i=10         //注意这里I不能放在函数里面,函数每次调用都会重新执行内部代码
		                                //放在里面就会每调用都重新声明了i,解决方法:通过传参方式
					function  fn () {
						if(!i){
							return i ;      
						}
						else{
                            console.log(666)
							i--;
							fn()
						}
						
					}
					fn()

二、函数自调用的案例

通过函数自调用输出10的阶乘

			function fn (n) {
			   	if(n<=1){
					return 1
				}
				else{
					return n*fn(n-1)
				}
			}						
			var re=fn(10)
			console.log(re)

假设你只知道数组内部全是(数字和数组的混套),不知道嵌套了几层,打印出所有数字

var arr=[[1,2,3,4,[2,3,4,5],[2,3,4,5],[4,54,2,6]],[2,3,4,4,5,6]]
		let myArr=function(arr){
			 for(let i=0;i

补充知识点:arguments

			function fn (a,b) {
				
				//实参==>调用时传入的数据(两种写法  数据直接量 变量)
				// arguments.length 实参数量
				// arguments.callee 运行的函数对象
				
			}
			
			fn(10,20)

对象中的函数的自调用方法

			var obj={say:function(){
				 obj.say()
			}}

自调用函数的自调用

			(function(n){
				if(n<=1){console.log(1)}
				else{console.log(n);arguments.callee(n-1) }
			})(10)  //打印10,9,8,7,6,5,4,3,2,1

你可能感兴趣的:(js基础,javascript,前端)