只是想知道,因为闭包是一个函数,它在定义之外引用了变量/方法。每个函数都关闭程序的全局变量(基本上在每种主流语言中,无论是 javascript/python/c/c+/什么)。那么,因此,每个函数都是一个闭包?
编辑:让我再次强调,我不仅在谈论 javascript 中的闭包,而且在更一般的上下文中
对,就是这样。正如您所确定的,JavaScript 中的每个函数都是至少一个上下文的闭包:全局上下文。这就是全局变量在 JavaScript 中工作的方式/原因。
我们通常不称它们为闭包,除非它们在某些其他上下文中关闭并且实际上利用了它们这样做的事实,但是您说得对,在技术层面上,它们都是。
每个函数都关闭程序的全局变量(基本上在每种主流语言中,无论是 javascript/c/c+/什么)。
我不会一概而论,不。不同的语言有不同的实现全局变量的方式。这些语言中的函数是否都是“闭包”可能是有争议的,所以我将上面的答案限制在 JavaScript 上。