请教一个关于js的问题

<script type="text/javascript">
    var demo=[];
    for(var i=0;i<3;i++){
        demo[i] = function() {
            console.log(i)
        }
    }
    demo[0]();
    demo[1]();
    demo[2]();
</script>

为什么最后返回的是三个3

求解

谢谢!

kumayato
浏览 1184回答 1
1回答

Caballarii

因为赋值的过程和执行的过程是分开的,demo[0]()实际会替换成function(){console.log(i)}执行,这时候去找i的值,已经是循环执行完以后的值了,就是3,后面两个也一样
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript