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啦!

根本都没有延迟!

所以这和闭包没有关系。

转载于:https://www.cnblogs.com/weizhibin1996/p/9702671.html

JS对象变量、闭包的一些问题相关推荐

  1. js 执行环境 活动对象 变量对象 作用域链的理解

    看一下是知乎大神对于 js 执行环境 活动对象 变量对象 作用域链的解释 假设在全局环境下定义了函数pub()和变量pubvar: var pubvar = 1; function pub () {v ...

  2. android js变量定义数组长度,js 声明数组和向数组中添加对象变量的简单实例

    数组有四种定义的方式 使用构造函数: var a = new Array(); var b = new Array(10); var c = new Array("first", ...

  3. 【JavaScript】JS的变量、数组、计算器案例、函数、类、常用对象的方法

    目录 01-js-js的声明和引入 <!DOCTYPE html> <html><head><meta charset="UTF-8"&g ...

  4. 使用变量的值作为JS对象的属性名,从而获取其对应的值

    使用变量的值作为JS对象的属性名,从而获取其对应的值 <script>var object={"a":1111,"b":2222};var para ...

  5. 串讲-解释篇:作用域,作用域链,执行环境,变量对象,活动对象,闭包

    这篇接:理论篇:作用域,作用域链,执行环境,变量对象,活动对象,闭包 看例子: function compare(value1, value2) {if (value1 < value2) {r ...

  6. android js变量定义数组,js 声明数组和向数组中添加对象变量的简单实例

    数组有四种定义的方式 使用构造函数: var a = new Array(); var b = new Array(10); var c = new Array("first", ...

  7. html数组添加对象的方法,js声明数组和向数组中添加对象变量的简单实例

    数组有四种定义的方式 使用构造函数: var a = new Array(); var b = new Array(10); var c = new Array("first", ...

  8. js笔记---作用域(执行上下文[execution context],活动对象) 闭包

    作用域: 首先,在javascript中的每个函数都是对象,是Funtion对象的一个实例,而Funtion中有一系列仅供javascript引擎存取的内部属性,其中一个便是[[scope]],它包含 ...

  9. 【学习笔记】深入理解js原型和闭包(5)——instanceof

    又介绍一个老朋友--instanceof. 对于值类型,你可以通过typeof判断,string/number/boolean都很清楚,但是typeof在判断到引用类型的时候,返回值只有object/ ...

最新文章

  1. SpringBoot2.3 修改响应头、添加更新token、解决在过滤器中修改失败
  2. (Unfinished)RNN-循环神经网络之LSTM和GRU-04介绍及推导
  3. Python元组介绍
  4. itchat python_itchat-python搭建微信机器人(附示例)
  5. 管理大型共享数据库,做到这几点不再头疼!
  6. Kibana图形、报表分析
  7. 学习docker on windows (1): 为什么要使用docker
  8. java jsp中文乱码怎么解决_如何解决JSP中文乱码问题
  9. java 等值线,java 克里金插值+等值线划分示例
  10. java身份证号/手机号隐藏中间几位
  11. jQuery获取元素上一个、下一个、父元素、子元素
  12. 宏碁暗影骑士3 win10 和 ubuntu18.04双系统安装
  13. linux开组态软件,基于嵌入式Linux的组态软件实时数据库的设计
  14. Python爬取京东笔记本电脑,来看看那个牌子最棒!
  15. 1.1[潜心创作]冒险游戏(MineCraft)不喜勿喷
  16. 提交apk到小米应用商店,monkey测试未通过被拒
  17. python程序设计重点_《Python程序设计》怎么样_目录_pdf在线阅读 - 课课家教育
  18. PCB UL阻燃等级标准
  19. SMT的基本原理介绍
  20. [附源码]java毕业设计小锅米线点餐管理系统

热门文章

  1. matlab中画花瓣,matlab画心,画玫瑰花,表白合集
  2. PHP新浪乐居面试题,一个朋友去新浪乐居面试时的面试题(PHP)
  3. java key值_java-必须为此操作提供PartitionKey值
  4. java spring省略jsp,Java +Tomcat + SpringMVC实现页面访问示例解析
  5. 如何检查php代码规范,用CodeSniffer检查PHP项目的代码规范
  6. php中调行高代码_单元格行高怎么设置
  7. mysql 双冒号_jdk8新特性之双冒号 :: 用法及详解
  8. 用python处理excel 数据分析_像Excel一样使用python进行数据分析(1)
  9. 从高斯分布的导出讲起——为什么概率密度函数长成这个样子?
  10. java字符匹配,Java:匹配字符串中的短语