提问人:wrongbyte 提问时间:9/28/2022 更新时间:9/29/2022 访问量:92
是否可以在没有闭包的情况下拥有嵌套函数?
Is it possible to have nested functions without closures?
问:
到目前为止,我对闭包的理解是,它们将“开放”函数与周围的范围结合在一起,本质上使它们成为闭合表达式。
我已经看过几个如何在 Javascript 中实现的例子,其中大多数使用嵌套函数来创建外部和内部范围,并展示该语言如何为内部函数创建周围范围的“快照”。
但是,我知道有些语言没有实现闭包,例如 C。在这种特殊情况下,也没有对嵌套函数的(原生)支持,因此似乎不可能从 JavaScript 复制“内部”和“外部”情况 - 据我所知,因此,没有闭包不会成为一个重要问题。
但是,一种语言是否有可能具有嵌套函数并且仍然没有闭包?还是一个暗示另一个?
答:
0赞
Nithish kumar Thiruchelvam
9/28/2022
#1
这是在 javascript 中发挥作用域概念的区域......如您所知,在 Java 中,我们主要使用类组件,然后我们使用继承来实现父级功能,但 JavaScript 是一种奇怪的语言......因此,我们无法实现没有嵌套函数的闭包
1赞
Matt Timmermans
9/29/2022
#2
只有当函数可以从声明它的作用域之外执行时,“闭包”的概念才有意义。
在没有第一类函数的语言中,即函数不能传递或分配给变量,你仍然可以有嵌套函数,但它们不能用作闭包。
上一个:如何在二维数组中找到唯一数
评论