js学习之什么是闭包

ps:学习了一段时间的js之后才知道什么才是闭包,感觉自己好呀!

含义:当函数可以记住并访问所在的词法作用域时,就产生了闭包,即使函数是在当前词法作用
域之外执行

个人理解:闭包是一种这样一种情况——一个函数a在函数b中进行声明,当函数b执行结束之后函数a仍然可以访问函数b作用域的所有变量,恩~对于一个刚学完java的我来说这就像是有人告诉我说其实一个对象里面的函数在对象销毁后仍然可以使用一样毁三观,但现实就是这么神奇,只要被包含的函数a仍然被使用,函数b的作用域就没有被销毁。下面是代码

function foo() {
var a = 2;
function bar() {
console.log( a ); }
bar();
}
foo();// 2

function foo() {
var a = 2;
function bar() {
console.log( a );
}
return bar;
}
var baz = foo();
baz(); // 2

这就是闭包!我也是看了你不知道的javascript才理解的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值