javascript - javascript中带构造函数的对象和闭包的区别

标签 javascript closures prototype

我是 JavaScript 新手,现在对两个概念感到困惑:带有构造函数和原型(prototype)的对象,以及闭包。

这里,闭包是指嵌套有其他函数的函数及其环境。

我觉得这两个概念从某种 Angular 来看似乎很相似:

它们都有变量,就像其他语言中的字段一样。在闭包中,它被称为环境,我认为它是值和某些变量之间的一种绑定(bind)。

而且,他们都有“方法”。在闭包中,我认为内部嵌套函数的作用就像这样。

那么,这两个概念的本质区别是什么呢?或者,这两种内存数据的方法有何不同?

如果我在上面的这些概念上有错误,请纠正我,谢谢。

最佳答案

嗯,闭包本身没有“方法”,因为它并不是真正的具体对象——它更多的是一个概念。闭包是使用函数实现的,函数本身可以具有方法,但您不会将闭包描述为具有方法。正如您所说,闭包是一个函数加上有关其环境的信息。

另一方面,原型(prototype)只是一个基本的 JavaScript 对象,因此说原型(prototype)具有方法是正确的。

关于javascript - javascript中带构造函数的对象和闭包的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11365410/

相关文章:

javascript - 子 div 水平滚动但修复父窗口

javascript - Passport.js 可选身份验证

javascript - 在 Javascript 的闭包中处理 'this' 的更好方法?

gradle - Groovy execute()。text组合

javascript - 多个 Element.prototype 不起作用

javascript - 对象实例共享子属性?

javascript - JS RegExp 中的转义特殊字符(在 jQuery .each() 中使用)

javascript - 按特定顺序对数组进行排序

JavaScript:闭包帮助

javascript - 像 "__proto__"这样的 javascript 属性名称在 ES5/6 中没有标准化吗?