让我问一个问题。这是关于JavaScript中的闭包,但不是关于它们如何工作的。
David Flanagan在他的“JavaScript权威指南第6版”中写道:
技术上讲,所有JavaScript函数都是闭包:它们是对象,并且与它们相关联的有一个作用域链。
这是正确的吗?我可以称每个函数(函数对象+它的作用域)为“闭包”吗?
并且stacks标签“closures”说:
闭包是指从定义它的作用域中引用(关闭)变量的头等函数。如果闭包在其定义的范围之后仍然存在,则它关闭的变量也将继续存在。
在JavaScript中,每个函数都引用了其定义的作用域中的变量。因此,它仍然有效。
问题是:为什么有那么多开发人员持不同意见?这个理论有什么问题吗?不能用作一般定义吗?
David Flanagan在他的“JavaScript权威指南第6版”中写道:
技术上讲,所有JavaScript函数都是闭包:它们是对象,并且与它们相关联的有一个作用域链。
这是正确的吗?我可以称每个函数(函数对象+它的作用域)为“闭包”吗?
并且stacks标签“closures”说:
闭包是指从定义它的作用域中引用(关闭)变量的头等函数。如果闭包在其定义的范围之后仍然存在,则它关闭的变量也将继续存在。
在JavaScript中,每个函数都引用了其定义的作用域中的变量。因此,它仍然有效。
问题是:为什么有那么多开发人员持不同意见?这个理论有什么问题吗?不能用作一般定义吗?