正在回答
2回答
同学你好,问题解答如下:
1.没错,因为后面加括号调用了函数。
2.第二个问题与第三个问题参考如下代码和注释理解:
(1)代码顺序执行,当页面打开的时候,for循环立马执行,当i=3时,不符合条件退出循环。而事件不是自动执行的,需要点击按钮才会执行。当你点击按钮的时候,注意前面说i=3 ,所以每一个事件中拿到的i都是3 。
参考如下:
(2)当设置一个匿名函数 ,由于函数可以形成一个局部作用域,即循环3次,也就形成了3个不同的作用域。而函数中定义了参数,参数相当于局部变量,所以每一个作用域下拿到的参数值是不同的。
参考如下:
同学的代码中形参和实参的名称都是i,所以容易混淆。为了方便理解,老师把形参的名称改为index。
(截图的代码和注释认真理解一下哦)
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
好帮手慕言
2020-01-09 18:31:46
同学你好,关于同学的疑问,解答如下:
1、(1)函数嵌套函数,这是闭包的一个结构。在本代码中,外层立即执行函数嵌套里面的事件函数。
(2)函数里的子函数被函数外部一直使用,使子函数无法释放,保持其所在作用域,形成一个封闭的作用域,称之位闭包。
本代码中,子函数给元素li绑定,所以子函数是被元素使用的(这就是被外部使用)无法释放(事件被保存下来了),变量i在事件中使用到了,所以它不能销毁,这样每一个事件都能拿到自己当前作用域下面的i值了。如下图
2、第一个i是形参,修改为其他的名字也是可以的。第二个i是实参。可以参考下方修改
如果我的回答帮到了你,欢迎采纳,祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星