JavaScript Class constructor 方法


实例

创建一个 Car 类,然后基于这个 Car 类创建一个名为 "mycar" 的对象:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <h2>JavaScript 类</h2>
  5. <p>在这个例子中,我们演示了一个简单的类定义以及如何使用它。</p>
  6. <p id="demo">
  7. <script>
  8. class Car {
  9. constructor(brand) {
  10. this.carname = brand;
  11. }
  12. }
  13. mycar = new Car("Tesla");
  14. document.getElementById("demo").innerHTML = mycar.carname;
  15. </script>
  16. </body>
  17. </html>

定义和用法

constructor() 方法是一种特殊的方法,用于创建和初始化在类中创建的对象。

当初始化类时,constructor() 方法会被自动调用,并且它必须使用确切的名称 "constructor",实际上,如果您没有构造方法,JavaScript 将添加一个不可见的空构造方法。

注意:一个类不能使用多个 constructor() 方法。这将抛出 SyntaxError。您可以使用 super() 方法来调用父类的构造方法(请参见下面的更多实例)。


浏览器支持

Method
constructor()49.013.045.09.036.0

语法

  1. constructor(parameters)

技术细节

JavaScript 版本:ECMAScript 2015 (ES6)

更多实例

如需创建类继承,请使用 extends 关键字。

通过类继承创建的类将从另一个类继承所有方法:

实例

创建一个名为 "Model" 的类,它将继承 "Car" 类的方法:

  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <h2>JavaScript 类继承</h2>
  5. <p>使用 “extends” 关键字从另一个类继承所有方法。</p>
  6. <p>使用 “super” 方法调用父级的构造函数。</p>
  7. <p id="demo">
  8. <script>
  9. class Car {
  10. constructor(brand) {
  11. this.carname = brand;
  12. }
  13. present() {
  14. return 'I have a ' + this.carname;
  15. }
  16. }
  17. class Model extends Car {
  18. constructor(brand, mod) {
  19. super(brand);
  20. this.model = mod;
  21. }
  22. show() {
  23. return this.present() + ', it is a ' + this.model;
  24. }
  25. }
  26. mycar = new Model("Tesla", "Model3");
  27. document.getElementById("demo").innerHTML = mycar.show();
  28. </script>
  29. </body>
  30. </html>

super() 方法引用父类。

通过在构造方法中调用 super() 方法,我们将调用父类的构造方法,并可以访问父类的属性和方法。


分类导航