闭包和对象是一回事,都是封装数据,只不过闭包语法,主要应用于「头等函数」语言中,用来解决函数声明和执行时外部作用域出现变化产生的问题。
1
limao 2021 年 12 月 12 日
|
2
35aZ4P8mT576683q 2021 年 12 月 13 日 via Android
闭包封装并绑定了 this, 我觉得有点像 OOP 里的单例模式
|
3
AndyAO OP @liberty1900 #2 不是单例,闭包生成函数可以被重复调用。
当然,你也可以匿名它,生成器函数,用完就丢掉,这样倒是单例了。 实质上这两个功能就是等价的,因为已经被证明可以相互模拟。 只不过通常语法上不同,在不同的情景下使用起来方便性有区别。 |
4
iamzuoxinyu 2021 年 12 月 13 日
写一个 lisp 解释器就能完全理解闭包这玩意了。
|
5
kidblg 2021 年 12 月 13 日 |
6
yulii 2021 年 12 月 13 日
SICP 第三章的模块化,里面提到的一个编程语言的抽象概念——环境模型。看了这个就理解了。
|
7
aguesuka 2021 年 12 月 13 日
我是这么认为的
闭包等价于对象 (Closures are equivalent to Objects) ("闭包 ~ 对象" 为真) 闭包和对象不是一回事 (Closures and Objects are not the same thing) ("闭包 ≡ 对象" 为假) |
8
julyclyde 2021 年 12 月 15 日
闭包是“不洁”的函数
它的输入居然不是明确全部列出来的 |