javascript函数的问题

2024-11-30 04:39:49
推荐回答(1个)
回答1:

首先不是“在for循环中 i 是取不到值得吗? 只有在循环结束后 i=3,i才被赋值”

而是“在for循环当中,i会变化,但是inner函数当中的i值并没有被立即调用”

这个和js的执行顺序有关系,i值会在for循环执行的时候不断变化,当调用计时器的时候,i值已经是3了

这个是典型的闭包问题,涉及到作用域的相关知识(在函数inner当中并没有i这个变量,变量是位于func这个函数当中的,此时,在调用inner的时候,要寻找i这个变量存储空间,找不到所以向父级查找,父级func当中有i,由于for循环已经执行完毕,i值已经被设置成了3,所以~自然是打出3的),建议你先了解一下作用域,另外也了解一下计时器,关于计时器的类似的一道题->JavaScript计时器