在nodeschool学习作用域链和闭包(Scope Chains And Closures)
2015-07-11 21:03
627 查看
1、closure闭包是什么
javascript的闭包是一个函数的局部变量被函数内定义的嵌套函数引用,函数又返回了其内部的嵌套函数,这样,函数执行后,其局部变量将被持续保留而暂时不会被GC回收,称这个语言特性叫闭包(自己的理解,非官方)。
2、链式作用域Scope Chains
每一条链式作用域的尾端是Global(node)或window(浏览器),内层可访问外层,反之不成立。
没有使用var(let)声明的变量,则会被理解为对上层变量的引用,如一直追溯Global/window,还没有找到,就被自动创建为全局变量。不小心容易出现bug。
3、shadow现象
内层Scope中,通过定义与外层Scope一样名字的变量就可以shadow外层Scope的变量。屏蔽外层变量,防止访问。不小心则容易出现bug。
2、学习几个单词
closure n.闭包
vice-versa 反之亦然
conscious adj.意识到的;n.意识
particularly adv.特别;尤其;
in turn 反之;反过来
hence adv.因此;从此以后
relevant adj.相关的;有意义的,目的明确的
freed adj.释放的
Sweep v.打扫;清除
variation n.变动;变化
implication n.牵连;含意;暗示;卷入
maintained 维护
legal adj.合法的
nested adj.嵌套的
mechanism n.机制;原理
Phrased n.短语;习语;措辞;
implicitly adv.含蓄地;暗中地;
make sense 有意义; 言之有理
adhere vi.遵守;坚持;
denote vt.表示;象征
Lexical adj.词汇的;词典的
查看原文:http://blog.indexroot.net/2015/07/11/nodeschool-learn-scope-chains-and-closures/
javascript的闭包是一个函数的局部变量被函数内定义的嵌套函数引用,函数又返回了其内部的嵌套函数,这样,函数执行后,其局部变量将被持续保留而暂时不会被GC回收,称这个语言特性叫闭包(自己的理解,非官方)。
2、链式作用域Scope Chains
每一条链式作用域的尾端是Global(node)或window(浏览器),内层可访问外层,反之不成立。
没有使用var(let)声明的变量,则会被理解为对上层变量的引用,如一直追溯Global/window,还没有找到,就被自动创建为全局变量。不小心容易出现bug。
3、shadow现象
内层Scope中,通过定义与外层Scope一样名字的变量就可以shadow外层Scope的变量。屏蔽外层变量,防止访问。不小心则容易出现bug。
2、学习几个单词
closure n.闭包
vice-versa 反之亦然
conscious adj.意识到的;n.意识
particularly adv.特别;尤其;
in turn 反之;反过来
hence adv.因此;从此以后
relevant adj.相关的;有意义的,目的明确的
freed adj.释放的
Sweep v.打扫;清除
variation n.变动;变化
implication n.牵连;含意;暗示;卷入
maintained 维护
legal adj.合法的
nested adj.嵌套的
mechanism n.机制;原理
Phrased n.短语;习语;措辞;
implicitly adv.含蓄地;暗中地;
make sense 有意义; 言之有理
adhere vi.遵守;坚持;
denote vt.表示;象征
Lexical adj.词汇的;词典的
查看原文:http://blog.indexroot.net/2015/07/11/nodeschool-learn-scope-chains-and-closures/
相关文章推荐
- Reverse Nodes in k-Group
- nodejs - 升级
- [LeetCode] Populating Next Right Pointers in Each Node II
- Node.js 之基于文件的模块系统
- [LeetCode] Populating Next Right Pointers in Each Node
- node在Fedora 22系统下开发环境搭建
- Count Complete Tree Nodes
- 记 Ubuntu14.04 Monodevelop 安装的两个问题
- [LeetCode][Java] Reverse Nodes in k-Group
- Node.js执行存储过程
- node.js的npm安装
- 在nodeschool学习git
- 一次使用NodeJS实现网页爬虫记
- Nodejs中when库的实例介绍
- 查看CPU处于哪个node
- nodejs【伪】入门教程
- LeetCode Count Complete Tree Nodes
- ubuntu nodejs + express4.x 安装 测试
- 通过官方网站的资料学习node
- Leetcode#24 Swap Nodes in Pairs