正在回答
同学你好,关于同学的问题解答如下:
1、因为局部作用域是函数里面的作用域,用完就会销毁的,而全局变量是不会自动销毁的,它会保留下来:
2、和作用域链没有关系,老师在这里给同学举一个简单的例子:
这个的结果就是1:
当我们调用test函数时,要打印a,但是函数内部没有定义a,所以就会沿着作用域链向上查找,找上一级有没有定义。
作用域建议同学再多听几遍相关视频:https://class.imooc.com/lesson/788#mid=19788
自己认真的思考一下,否则这样是治标不治本的哦,要学会自己进行总结。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
同学你好,同学是想问为什么绑定事件以后,不管点击哪个按钮都提示3吗?如果是的话,解答如下:
1、弹出3的原因是因为页面打开的时候,for循环就立马执行了 ,此时循环3次,依次为按钮绑定事件。而count第一次循环值为0 ,第二次循环又重新定义并赋值为1 .....最终赋值的也是2。因为它们都是全局变量。当点击按钮的时候,for循环已经执行结束了,所以拿到的count永远是2(加1为3):
2、在下面这个正确写法中:
定义了一个函数,把事件写在函数中,在循环中调用。函数会形成一个局部作用域,循环3次,函数调用3次。即形成了3个独立的作用域,那么调用函数时,会把当前的i值传递给参数count,所以每一个函数中,通过参数count保存下来当前的i值,这样拿到的值就不一样了。
也就是每循环一次,调用一次函数,传递的这个值,就在调用的这个函数的作用域内有效。i在函数里面是局部变量,每次函数执行完毕都会被销毁,所以每次i的值都不同,最终可以实现效果。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星