zoukankan      html  css  js  c++  java
  • JS对象变量、闭包的一些问题

    https://www.cnblogs.com/ivehd/p/vo_ao.html

    为什么会有预解析,

    其实是因为函数在被调用的时候,还没有被执行,会先创建对象变量

    对象变量里面存了什么呢?

    然后对象变量又会放到作用域链上,所以,函数开始执行的时候,会去作用域上找,最先找的就是自己的对象变量。

    所以如果内部用同名的变量,那么肯定是获取到undefined的那个值了。

    至于之前的那个代码

    for(var i=0;i<4;i++){
      setTimeout(function(i) {
        console.log(i);
      }(i),1000);
    }

    setTimeout要传的是一个函数,

    这里

    function(i) {
        console.log(i);
      }(i)

    已经是函数的执行了,所以在传入setTimeout的时候,该函数已经执行了,所以当然是0 1 2 3啦!

    根本都没有延迟!

    所以这和闭包没有关系。

  • 相关阅读:
    MZOJ #72 数字
    MZOJ #71 maple做数学题
    MZOJ #70 FFF团
    luogu 2051 [AHOI2009]中国象棋
    uva 280
    uva 260
    文件的基本处理
    文件的基础
    Turtle库
    π的计算
  • 原文地址:https://www.cnblogs.com/weizhibin1996/p/9702671.html
Copyright © 2011-2022 走看看