当前位置: 首页 > Web前端 > HTML5

对IIFE和闭包

时间:2023-04-05 17:17:30 HTML5

的理解完全不符,翠花,上酸菜吧!//随便写一个函数vararr=[];for(vari=0;i<3;i++){arr[i]=function(){returni;}}//猜猜它将如何输出控制台。log(arr[0]());//3console.log(arr[1]());//3console.log(arr[3]());//3哦,这是为什么呢?哦,好吧,也就是说,块级作用域的问题,言归正传:其实这样写,结果是一样的:vararr=[];for(vari=0;i<3;i++){//keepEmpty}console.log(i)//太暴力了,也是3!我们来看看IIFE和闭包的结合:vararr=[];for(vari=0;i<3;i++){(function(i){arr[i].function(i){returni;}})(i);}console.log(arr[0]());//0console.log(arr[1]());//1console.log(arr[2]());//2其实弄了半天,我还有一个更厉害的技能,我都不想告诉你为什么那么多人喜欢ES6,因为它真的很666:vararr=[];for(leti=0;i<3;i++){arr[i]=function(){returni;}}//这是一个神奇的世界!console.log(arr[0]());//0console.log(arr[1]());//1console.log(arr[2]());//2var要哭了,真的,怎么会这样,卑鄙!肮脏的!不要脸!添加马赛克...