请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师您好,看完这两节课,我还不是很理解闭包,可以用白话简单说一下什么是闭包吗?

老师您好,看完这两节课,我还不是很理解闭包,可以用白话简单说一下什么是闭包吗?

正在回答

2回答

双越 2018-04-10 18:04:05

视频中也提到了,闭包不太好用一句话来解释。理解必要你要理解两个常用的应用场景,即视频中提到的:第一,函数作为返回值;第二,函数作为参数传递到其他函数中。在这俩场景下,函数体内的自由变量是如何获取的?理解了这个,你也就理解了闭包。

1 回复 有任何疑惑可以回复我~
wind_msh 2018-04-14 03:06:45

如果题主对OOP有一定了解的话,我想试着用OOP的概念来解释一下闭包。

如果答的不对,还请@双越见谅


1. 从OOP的观点来看,闭包其实是一个OBJECT, 它闭的是一个对象的属性

      -- 在OOP的设计中,绝大多数的属性应该都是私有的, 

    如果这里能理解接下来应该就会好办一些。

    https://www.zhihu.com/question/21142338

2. 为了让外部组件能够访问以及修改闭包这个对象的属性,我们必须有公有的方法,在闭包里面,这个公有的方 法就是在结尾返回的那个function. 

    -- 这个公有的方法被闭包传递给外部环境来访问及修改闭包内闭的属性。

3. 我们通过闭包其实实现的是OOP里面的私有属性封装。


谢谢.



2 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信