前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >5分钟学会javascript闭包(一)

5分钟学会javascript闭包(一)

作者头像
web前端教室
发布2018-02-06 10:44:25
4030
发布2018-02-06 10:44:25
举报
文章被收录于专栏:web前端教室web前端教室

先来定义,能读取其它函数内部变量的函数,它可以将函数内部和外部连接起来。

javascript有二种变量的作用域,

一是全局变量,二是局部变量

根据javascript语言的特性,一个函数可以访问函数外的全局变量,但函数外的其它函数,却无法访问此函数内部的局域变量。

例如:

代码语言:js
复制
var abc = 123;
function n1(){
 console.log(abc)
}
n1();
//123

但如果这样写:

代码语言:js
复制
function n2(){
 var abc=456;
}
console.log(abc);
//error

但有的时候,就是需要在函数外面,获取函数的内部变量,就这样写:

代码语言:js
复制
function n3(){
 var a1 = '123';
 function n4(){
 console.log(a1);
 //123
 }
}

或直接点这样写:

代码语言:js
复制
function n5(){
 var a2 = '555';
 return function(){
  console.log(a2)
 }()
}
n5();
//555

上面例子中的n4函数就是闭包。

闭包这二个字本身就难以理解,各种书上对它的解释也是各种看不懂。

我建议还是要理解它,而不是读懂各种书上对它的定义。

SO,

n4函数能读到它的,,,父函数吧,就这个意思,的局域变量,

那这个n4()就是闭包。。

return的匿名自执行函数,能够读到它的父函数n5的局域变量,那这个return r 匿名自执行函数,就是闭包。。

--------------

好啦,闭包讲完了,看看表,5分钟到了吗?

闭包有哪些用处呢?

它的用处可大了,下次再说,,困了,晚安

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-12-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 web前端教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档