我是 JavaScript 新手,现在对两个概念感到困惑:带有构造函数和原型(prototype)的对象,以及闭包。
这里,闭包是指嵌套有其他函数的函数及其环境。
我觉得这两个概念从某种 Angular 来看似乎很相似:
它们都有变量,就像其他语言中的字段一样。在闭包中,它被称为环境,我认为它是值和某些变量之间的一种绑定(bind)。
而且,他们都有“方法”。在闭包中,我认为内部嵌套函数的作用就像这样。
那么,这两个概念的本质区别是什么呢?或者,这两种内存数据的方法有何不同?
如果我在上面的这些概念上有错误,请纠正我,谢谢。
最佳答案
嗯,闭包本身没有“方法”,因为它并不是真正的具体对象——它更多的是一个概念。闭包是使用函数实现的,函数本身可以具有方法,但您不会将闭包描述为具有方法。正如您所说,闭包是一个函数加上有关其环境的信息。
另一方面,原型(prototype)只是一个基本的 JavaScript 对象,因此说原型(prototype)具有方法是正确的。
关于javascript - javascript中带构造函数的对象和闭包的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11365410/