代码改变世界

作用域链+闭包

2018-01-20 17:31  fkk  阅读(98)  评论(0)    收藏  举报

闭包

但凡是内部的函数,被保存到了外部,它一定生产闭包

闭包弊端:过多的闭包会导致内存泄漏

 闭包列子

此列子输入10个10

这相当于是,10个函数共用一个test执行期上下文

循环时,arr[i]会套现 i =0,1,2,3,4,5,6,7,8,9,10

那个循环体循环10次后,将结果返回到外部;此时arr[i]  i为10   ;后面那个相当于是函数  arr[i]=函数 ,函数不会在意里面写的什么东西。等到外部执行的时候myArr[j]  才会执行函数里的;

 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

采用立即执行函数就可以正常输出

0,1,2,3,4,5,6,7,8,9

这个相当于是写了10个立即执行函数,每个执行函数,都形成一个test执行期上下文;是一一对应的

J 是随着立即执行函数的数量在增加;多少个立即执行函数,就有多少个j。

 闭包第3点

第三点的运用

preparewife这个属性;只有通过对象自己设置的方法可以去操作他,外部想通过.(点)是点不出来的;他是对象与原有空间形成闭包的东西。这个是闭包第三点运用

只能通过:deng.saypraperwife()

这样是看不见的:deng.preparewife