由作用域链引发的一个小问题
来源:互联网 发布:魔方拼图软件 编辑:程序博客网 时间:2024/05/29 03:12
在写上一篇博文的过程中发现了一个小问题,
var a=2;function f(){ var b=a; f2=function(y){ return y; }}f();console.log(f2(b));//not defined 而不是 2
由于f2是闭包,能访问f2作用域链中的变量b,最开始我以为结果会输出2,但结果被打脸。
原因是我弄混了作用域链和函数之间的关系。要理解作用域链,最重要的是下面这句话:
每一段js代码(全局代码或函数)都有一个与之关联的作用域链。
也就是说,作用域链是与代码相关联的,f2(b)是全局代码而不是f2()的代码,因此在执行时所关联的作用域链是全局对象,并不能访问f的活动对象,因此输出b为not defined。
0 0
- 由作用域链引发的一个小问题
- 一个由安装顺序引发的域登录问题
- 由一个问题引发的思考
- 一个由sizeof引发的问题
- c语言由一个小问题引发的关于gets和scanf的探究
- 白话计算机图形学初步-由一个小问题引发的故事
- 白话计算机图形学初步-由一个小问题引发的故事
- 由一个小程序引发对 size_type类型的思考
- 由简单小问题引发的思考和推理
- PHP:由一些小问题引发的思考
- 由一个浮点数问题引发的致命问题
- 关于一个小问题引发的感慨
- setTimeout使用之由"作用域"引发的血案
- 由一个问题引发的网络知识解惑
- C++指针小结:由一个问题引发的。。。。。。。。。。。。。。。。。。。
- 由一个sizeof()引发的内存越界问题
- 由Typedef引发的问题
- 由UseSubmitBehavior引发的问题
- win10系统+jdk1.7(环境变量配置)+apache-tomcat-7.0.75(环境变量配置)
- 算法进行时--单链表(一)头尾插法
- Simple RxJava 简单的RxJava实现
- 洛谷P1314聪明的质检员(二分)
- Kore:开源C语言Web框架
- 由作用域链引发的一个小问题
- 同域名适配手机端和PC端
- Eclipse、MyEclipse默认字符设置
- Hdfs shell命令操作
- C语言的Web框架 Raphters
- SOA 设计的 9 大原则
- 产品经理应该如何分析数据?
- 11.多线程简介
- jAVA 注解 及使用(Dagger2&ButterKnief)