闭包的问题
来源:11-16 再用闭包解决一下_
hihiluo
2018-03-08
这段代码里origin的作用? 这里origin的全局变量与pos这个环境变量没有冲突吗?他们能直接传参?f(2)里的step是怎么传进去的?能否把这个完全导开一下吗?就是不同F()这个传参
写回答
2回答
-
7七月
2018-03-08
origin和pos有什么 冲突,连名字都不一样呀。
022018-03-08 -
八云君
2018-03-08
我的理解是,origin只是赋值给pos,即让pos=0,所以没有冲突,pos作为factory函数的参数,也是其factory本身的变量,f(2)的变量是传step=2,然后new_pos=0+2,由于nonlocal pos,所以pos不是go函数里面的变量而是factory的变量,所以pos=new_pos=2,其go函数的环境变量得到改变而被保存下来为下一次调用所用
012018-03-08
相似问题