Javascript中的作用域链与闭包
来源:互联网 发布:html调用外部js文件 编辑:程序博客网 时间:2024/04/27 22:48
Javascript中有两个十分重要的概念–作用域链和闭包。
我是这样理解作用域链的,在一个函数中,函数内部所有可以访问的变量,排成了一个栈,想根据某个变量名访问变量时,就从栈顶开始向下搜索,搜到的第一个就算是找到了。那么,这个栈是怎么排列的呢?栈顶,是函数的内部变量以及arguments,栈顶下面,是包含这个函数的内部变量和arguments,往下依次类推。
闭包又是什么呢?闭包是一个函数,这个函数突破了作用域链,可以访问另一个函数作用域中的变量。下面是一个例子:
function createFunction(name){ return function(){ alert(name); }; } var printName = createFunction("John"); printName();//JohncreateFunction()中的匿名函数即是一个闭包。由于createFunction()是返回的匿名函数的父函数,所以匿名函数的作用域链上有createFunction(name)的参数即name,所以可以访问到;createFunction(name)运行完毕后,其活动对象不会被销毁,依然留在内存中,因为它的参数name还在被返回的匿名函数引用着。这样做会带来方便,但是也会多占内存,所以要慎用闭包。
0 0
- Javascript中的闭包与作用域
- Javascript中的作用域链与闭包
- JavaScript作用域链与闭包
- JavaScript 作用域链与闭包
- JavaScript中的作用域链和闭包
- !!JavaScript中的作用域链和闭包 整理
- javascript函数作用域与闭包
- Javascript 闭包与作用域
- Javascript闭包与作用域
- JavaScript闭包作用域与this
- javascript作用域与闭包
- javascript作用域与闭包
- javascript中的【变量作用域】和【作用域链】以及【闭包】的理解
- 深入解析JavaScript闭包:从作用域与作用域链s
- javascript作用域与作用域链、闭包、对象创建模式、继承模式
- JavaScript作用域链和闭包
- javascript 作用域链和闭包
- JavaScript作用域链及闭包
- 黑马程序员-Date_Calender_Mathrandom
- POJ2375——Cow Ski Area
- 快速排序与求第k大数
- HDU-#4096 Universal Question Answering System(字符串+路径判断)
- oc中数组的排序方法总结
- Javascript中的作用域链与闭包
- Python's Third Part Lib
- windows下mysql第一步
- stm3中断与事件
- 二分查找需要注意的几点及优化
- [ACM] POJ 3740 Easy Finding (DFS)
- cocos2d-x-3.3beta0 编译apk方法(eclipse and cmd)
- poj Firing(最大权闭合图)
- iOS开发者账号申请总结