📜  javascript es6 类 - Javascript (1)

📅  最后修改于: 2023-12-03 15:01:37.457000             🧑  作者: Mango

Javascript ES6 类

在Javascript中,类是对象的一种具体实现。ES6以后,Javascript中引入了基于类的面向对象编程。在这里我们将会讨论Javascript中类的所有概念和用例。

定义一个类

在Javascript中,定义一个类很简单。我们使用class关键字来进行定义。如下所示:

class MyClass {

}

这将定义了一个空的类名为MyClass。这个类可以用来创建我们需要的对象。

类的构造函数

一个类的构造函数可以使用constructor()方法。这个方法会在对象实例化时被自动执行。可以在构造函数中初始化类的属性,如下所示:

class MyClass {
  constructor(name) {
    this.name = name;
  }
}

const myObject = new MyClass("John");
console.log(myObject.name); // Output: John

上述代码定义了一个名为MyClass的类,并且定义了一个参数为name的构造函数。在例子中,我们创建了一个名为myObject的对象,并传入了"John"作为参数。最后,我们打印出了myObject对象的属性name,打印出的结果为"John"。

类的方法

类的方法是定义在类中的函数。通过方法实现了类的行为。添加方法很简单,类似于函数,只需要在类的定义中添加一个方法名,再加上参数和函数体即可。

class MyClass {
  constructor(name) {
    this.name = name;
  }
  
  sayHello() {
    console.log(`Hello ${this.name}!`);
  }
}

const myObject = new MyClass("John");
myObject.sayHello(); // Output: Hello John!

上述代码定义了一个名为MyClass的类,并且定义了一个参数为name的构造函数和一个名为sayHello的方法。在例子中,我们创建了一个名为myObject的对象,并传入了"John"作为参数。最后,我们调用了myObject对象的sayHello方法。

继承类

Javascript中,继承类使用关键词extends来实现,子类可以通过继承父类的方法和属性来实现相同的功能。

class Animal {
  constructor(name) {
    this.name = name;
  }
  
  speak() {
    console.log(`${this.name} makes a noise.`);
  }
}

class Dog extends Animal {
  speak() {
    console.log(`${this.name} barks.`);
  }
}

const dog = new Dog('Rex');
dog.speak(); // Output: Rex barks.

上述代码定义了一个名为Animal的类,并定义了一个名为speak的方法。接着我们定义了一个名为Dog 的类继承自Animal类。新的speak()方法重写了Animal类的同名方法并打印不同的输出。

结论

以上是Javascript ES6的类的相关概念和用法。我们可以使用类来实现面向对象编程,定义属性和方法,还可以使用继承来实现代码复用和拓展。