javascript - 闭包

今天群里聊到JS的闭包,说是不理解。我看了下那个PDF的截图上的内容,。。。。我就看了一小会,反正也没看太看懂,写的太玄幻。。

我就觉得这个吧,看不懂闭包,其实也正常。因为看懂了反正一时你也用不上。。看不懂别着急,慢慢的就看懂了。

============

直白点讲,闭包就是函数套函数,

function a(){
 var aVal = '123';
 function b(){
 console.log( aVal );
 }
 return b;
}
a()(); //123

这,就是一个最简单的闭包了。

b是a的子函数,a函数的所有局部变量,对于b函数都是可见的。

============

如果b函数里定义变量了,a函数就调用不到了,

function a(){
 function b(){
             var bVal = '456'
 }
  console.log(bVal);//
}
a() ;//bVal is not defined

看,报错了

============

闭包就是一个函数,它把一些变量包起来。不让它外面的函数访问到,但可以让它里面的子函数访问到。

新手看不懂闭包,一般都是在引用啊,什么这那的,搞三搞四的就晕了。

闭包不多讲了,讲多就晕了。

先理解了啥叫闭包,它的好处啊,坏处啊,网上讲的很多,自己百度一下,我就不打字了。

原文发布于微信公众号 - web前端教室(webfeel)

原文发表时间:2016-03-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏申龙斌的程序人生

零基础学编程022:函数的世界

通过《零基础学编程021:获取股票实时行情数据》的学习,我们已经可以取出“谷歌”股票的开盘价,今天我们要取出GAFATA共6支股票的开盘价。 先回顾上次的代码:...

2846
来自专栏做全栈攻城狮

电脑小白学习软件开发(八)-复杂数据类型介绍使用,枚举,数组

枚举表示的是:限定只能包括列出来的值。我们这里以星期来举例子。顾名思义,星期只能包括星期一到星期日。用代码来表示下。

1034
来自专栏皮皮之路

【JDK1.8】Java 8源码阅读汇总

3937
来自专栏Crossin的编程教室

【Python 第19课】 函数

数学上的函数,是指给定一个输入,就会有唯一输出的一种对应关系。编程语言里的函数跟这个意思差不多,但也有不同。函数就是一块语句,这块语句有个名字,你可以在需要时反...

3077
来自专栏封碎

尾递归 博客分类: 算法 Erlang算法CC++C#

递归很常用,但是很耗内存,因为需要存储临时变量,当递归次数多了,占据的内存数量惊人。

1022
来自专栏ASP.NETCore

.Net Core中使用ref和Span<T>提高程序性能

其实说到ref,很多同学对它已经有所了解,ref是C# 7.0的一个语言特性,它为开发人员提供了返回本地变量引用和值引用的机制。 Span也是建立在ref语法...

1835
来自专栏about云

hadoop开发必读:认识Context类的作用

问题导读: 1.Context能干什么? 2.你对Context类了解多少? 3.Context在mapreduce中的作用是什么? 本文实在能够阅读源码...

3474
来自专栏鹅厂优文

Python 工匠:编写条件分支代码的技巧

我一直觉得编程某种意义是一门『手艺』,因为优雅而高效的代码,就如同完美的手工艺品一样让人赏心悦目。

1.1K10
来自专栏Phoenix的Android之旅

你不知道的Interface的骚操作

"难道面试不顺利?"小A心想。于是问小呼都问了什么。小呼说,面试官问了个奇怪的问题,

792
来自专栏磐创AI技术团队的专栏

干货 | 如何写一个更好的Python函数?

《Writing Idiomatic Python》一书的作者在Medium上发表了一篇文章,给出了6个建议。

791

扫码关注云+社区

领取腾讯云代金券