小码哥的IT人生

JavaScript Class constructor 方法

JavaScript基础 2022-06-08 10:34:04小码哥的IT人生shichen

JavaScript Class constructor 方法

实例

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

class Car {
  constructor(brand) {  // Constructor
    this.carname = brand;
  }
}
mycar = new Car("Ford");

完整实例:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript 类</h2>
<p>在这个例子中,我们演示了一个简单的类定义以及如何使用它。</p>
<p id="demo"></p>
<script>
class Car {
  constructor(brand) {
    this.carname = brand;
  }
}
mycar = new Car("Tesla");
document.getElementById("demo").innerHTML = mycar.carname;
</script>
</body>
</html>

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

页面下方有更多 TIY 实例。

定义和用法

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

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

注意:一个类不能使用多个 constructor() 方法。这将抛出 SyntaxError

您可以使用 super() 方法来调用父类的构造方法(请参见下面的更多实例)。

浏览器支持

Method Chrome IE Firefox Safari Opera
constructor() 49.0 13.0 45.0 9.0 36.0

语法

constructor(parameters)

技术细节

JavaScript 版本: ECMAScript 2015 (ES6)

更多实例

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

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

示例代码:

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

class Car {
  constructor(brand) {
    this.carname = brand;
  }
  present() {
    return 'I have a ' + this.carname;
  }
}
class Model extends Car {
  constructor(brand, mod) {
    super(brand);
    this.model = mod;
  }
  show() {
    return this.present() + ', it is a ' + this.model;
  }
}
mycar = new Model("Ford", "Mustang");
document.getElementById("demo").innerHTML = mycar.show();

完整实例:

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript 类继承</h2>
<p>使用 “extends” 关键字从另一个类继承所有方法。</p>
<p>使用 “super” 方法调用父级的构造函数。</p>
<p id="demo"></p>
<script>
class Car {
  constructor(brand) {
    this.carname = brand;
  }
  present() {
    return 'I have a ' + this.carname;
  }
}
class Model extends Car {
  constructor(brand, mod) {
    super(brand);
    this.model = mod;
  }
  show() {
    return this.present() + ', it is a ' + this.model;
  }
}
mycar = new Model("Tesla", "Model3");
document.getElementById("demo").innerHTML = mycar.show();
</script>
</body>
</html>

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

super() 方法引用父类。

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

相关页面

JavaScript 教程:JavaScript 类

JavaScript 教程:JavaScript ES6 (EcmaScript 2015)

JavaScript 参考手册:extends 关键字

JavaScript 参考手册:super 关键词

版权所有 © 小码哥的IT人生
Copyright © phpcodeweb All Rights Reserved
ICP备案号:苏ICP备17019232号-2  

苏公网安备 32030202000762号

© 2021-2024