javascript中闭包的概念
2016-06-05 20:00
295 查看
在JS中,不存在其他语言中的大括号级的作用域,但它有函数作用域,若想访问函数内部的局部变量,可以在函数内部声明一个函数,用来返回函数内部的局部变量。
如下例:
var a=5;; function f1() { var a=1; function f2() { alert(a); } return f2(); } a; =>5 f1(); =>1
由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成“定义在一个函数内部的函数”。所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。
可有以下几种闭包:
闭包#1:
function f() { var b = 'b'; return function () { return b; } } var n = f(); n(); =>'b'
闭包#2:
var n; function f() { var b = 'b'; n = function () { return b; } } n(); =>'b'
闭包#3:
function f(arg) { var n = function () { return arg; } arg++; return n; } var m = f(123); m(); =>124
闭包#3中n被赋值时函数并没有被调用,调用是在n被求值,也就是执行return n;语句时被调用的。
相关文章推荐
- Javascript中闭包(Closure)的探索(一)-基本概念
- javascript理解闭包概念
- javascript中闭包概念与用法深入理解
- php闭包详解 javascript中闭包的概念也是这样
- javascript中的闭包概念
- javascript中重要概念-闭包-深入理解
- 新手初学习javascript的闭包(closure)概念
- 几个概念:javascript闭包及柯里化
- 深入浅出理解JavaScript的闭包概念
- javaScript——作用域和闭包概念
- Javascript 闭包的概念
- 理解javascript 闭包概念优缺点及应用
- JavaScript高级之闭包的概念及其应用
- JavaScript作用域、闭包、对象与原型链概念及用法实例总结
- javascript中闭包的概念
- 深入浅出理解JavaScript的闭包概念
- 理解Javascript中的闭包概念也会如此沉重
- JavaScript高级之-------闭包的概念及其应用
- JavaScript概念总结:作用域、闭包、对象与原型链
- JavaScript的闭包概念