闭包
闭包相关概念和python中的概念相似,故不再进行过多赘述,对概念不太明白的道友请自行百度,这里直接给出案例。
Eg1
执行结果:
注解:使用的是同一个闭包 函数,每次调用后num1的值加一
Eg2
注解:系统先执行主程序,遇到定时器时候将定时器或绑定事件加入到等待队列,等主程序执行完之后在去执行等待对列的代码
想在触发事件的时候alert出对应的索引,希望将for循环中的i传递给事件的绑定函数中,在绑定事件函数外套一个自调用函数,形参和实参为i。
Eg3
执行结果:
、
注解:系统先执行主程序,遇到定时器时候将定时器或绑定事件加入到等待队列,等主程序执行完之后在去执行等待对列的代码。
执行结果:
注解:系统先执行主程序,遇到定时器时候将定时器或绑定事件加入到等待队列,等主程序执行完之后在去执行等待对列的代码
Eg4
执行结果:
注解:object.getNameFunc()函数返回值是getNameFunc下的匿名函数,此时的作用域是全局变量,后面的 ()是调用这个匿名函数,访问的是全局变量中的name,代码var name = "The window";,将name设置在全局变量中,这个例子没有闭包
Eg5
执行结果:
注解:调用object.getNameFunc()时候,执行var that = this;,此时this是object。
Eg6
执行结果:
注解:button标签中为新增的自定义标签,注册事件的时候获取鼠标单击的button对应的data-size的值进行对字体大小重新设置
执行结果:
注解:创建一个函数,调用函数并传入实参size,返回值为一个匿名的对字体设置的函数,将返回值(函数)赋给button的注册事件的调用函数。