JavaScript 学习笔记— —闭包(一)
2015-04-03 22:55
253 查看
一个函数内部还定义了另一个函数,内部函数可以调用外部函数的变量,这就是闭包。
上述代码输出为16,因为bar可以调用foo内的参数x,同样也可以调用foo里的tmp值。
上方代码的函数依旧输出16,bar还是可以调用x和tmp,即使它在函数外。但其实tmp仍然是在bar闭包之内,所以每次调用时都会进行运算。
闭包最简单的实例:
当一个JavaScript函数被调用,将会创建一个新的执行环境。这个执行环境连同函数参数和父对象,还可以接收外部的声明变量。(如上例的a和b)
function foo(x) { var tmp = 3; function bar(y) { alert(x + y + (++tmp)); } bar(10); } foo(2)
上述代码输出为16,因为bar可以调用foo内的参数x,同样也可以调用foo里的tmp值。
function foo(x) { var tmp = 3; return function (y) { alert(x + y + (++tmp)); } } var bar = foo(2); // bar is now a closure. bar(10);
上方代码的函数依旧输出16,bar还是可以调用x和tmp,即使它在函数外。但其实tmp仍然是在bar闭包之内,所以每次调用时都会进行运算。
闭包最简单的实例:
var a = 10; function test() { console.log(a); // will output 10 console.log(b); // will output 6 } var b = 6; test();
当一个JavaScript函数被调用,将会创建一个新的执行环境。这个执行环境连同函数参数和父对象,还可以接收外部的声明变量。(如上例的a和b)
相关文章推荐
- JavaScript学习笔记(6)---闭包
- JS学习笔记:JavaScript匿名函数与闭包(closure)
- javascript 设计模式 学习笔记(三)--基础(闭包)
- Javascript学习笔记:闭包题解(3)
- 韩顺平_轻松搞定网页设计(html+css+javascript)_第33讲_Object类_闭包_成员函数再说明_聪明的猪小练习_学习笔记_源代码图解_PPT文档整理
- 【学习笔记javascript设计模式与开发实践(闭包和高阶函数)----3】
- JavaScript学习笔记(九)—— JS 理解闭包
- 韩顺平 javascript教学视频_学习笔记16_Object类_闭包_成员函数再说明_聪明的猪小练习
- JavaScript学习笔记十四:闭包
- JavaScript 学习笔记七 闭包二
- JavaScript权威设计--命名空间,函数,闭包(简要学习笔记十二)
- JavaScript 学习笔记— —闭包(二)
- JavaScript学习笔记之函数表达式与闭包
- Javascript学习笔记:闭包题解(1)
- Javascript学习笔记--理解闭包
- javascript学习笔记(十三) js闭包(转)
- JavaScript中闭包的学习笔记
- Javascript学习笔记:闭包题解(4)
- Javascript学习笔记:闭包题解(2)