正如在关于javascript的每一篇关于OOP的教程中所说的,“类只是在ES6中引入的语法糖,实际上是类--它只是函数”,但是没有人展示它是如何变成函数的,因此我有一个问题:下面代码中的示例类将如何处理它变成函数,以及它的属性和函数以后将在哪里分配和访问?
class Example {
constructor(a, b) {
this.a = a;
this.b = b;
}
changeA() {
this.a = 5;
}
changeB(b) {
this.b = b;
}
}
// Suggested allocating instance here, but what allocates and how it looks "behind the scenes"?
let ex = new Example(1, 2);发布于 2020-06-10 16:15:33
类语法允许您快速创建原型的实例。在您的示例中,Example是一个原型,而ex是该原型的一个实例。虽然1和2特定于Example的ex实例,但changeA和changeB方法属于ex的原型,即Example。如果您console.log(ex),您将不会看到changeA和changeB,您只会看到a: 5, b: 2。但是您还会看到一个__proto__属性。单击控制台中的打开按钮,您将在那里看到您的方法。因此,Example的任何实例都将具有这些方法。
我建议在javascript中学习更多关于原型和继承的知识。首先了解和理解这些内容,然后再理解为什么class是语法糖就更容易了。
https://stackoverflow.com/questions/62308111
复制相似问题