gpt4 book ai didi

javascript - 理解 Javascript 中的类关键字

转载 作者:行者123 更新时间:2023-12-01 08:26:16 25 4
gpt4 key购买 nike

我最近开始接触 ES6,终于开始认真学习类(class)了。我读到类只是 Javascript 中对象的一个​​掩护,但是,我发现语法最不舒服。

有人可以解释/指向他们解释的引用,类如何模拟以及重要的是我们如何将它们映射到我们心中的对象操作的 Javascript 方式。

class NoteStore {
constructor() {
this.bindActions(NoteActions);

this.notes = [];
}
}

根据上面的示例代码,我认为类只是构造函数,但构造函数在构造函数中做什么?

作为一个开始学习 Js 编程的人,我发现添加类(也是 React 的类)对 Js 来说是一个糟糕的补充,所以任何帮助都会很棒。

谢谢

最佳答案

经典的基于类的编程基于定义一个类,该类包含一个构造方法和其他方法,这些方法将被构造的对象继承。这是如您在示例中所示的那样编写的:类是用它的名称定义的,然后包含一个构造函数,然后是更多函数。

类定义中的构造方法有些特殊,因为它在对象构造时被调用。由于它很特殊,因此需要以某种方式对其进行标记,这可以通过将其命名为 constructor 来完成。

在经典 Javascript(基于原型(prototype)的 OOP)中,它的工作方式不同:对象构造函数是一个简单的函数,每个对象实例继承的方法都定义在对象的 .prototype 属性上那个功能。基于原型(prototype)的 OOP 中的构造函数没有什么特别之处,它只是一个函数,真正的魔力在于 new 关键字以及在构造对象时使用 this .

使用构造方法以 class 的形式表达这一点只是为了迎合经典 OOP 开发人员,并且可以说提供了更紧凑的语法。

class NoteStore {
constructor() {
this.bindActions(NoteActions);
this.notes = [];
}

bindActions(actions) {
..
}
}

这用简单的 Javascript 表示是:

function NoteStore() {
this.bindActions(NoteActions);
this.notes = [];
}

NoteStore.prototype.bindActions = function (actions) {
..
}

关于javascript - 理解 Javascript 中的类关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34309939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com