JavaScript 的 class
语法是一种定义对象构造函数的简洁方式,它是基于原型的继承模型的语法糖。从 ES6(ECMAScript 2015)开始,class
被引入到 JavaScript 中,使得面向对象编程变得更加直观和方便。
以下是一些基本的 class
语法要点:
-
定义类:
class MyClass { constructor() { // 类的构造函数 } }
-
构造函数:
构造函数是一个特殊的方法,当创建类的新实例时自动调用。class Person { constructor(name, age) { this.name = name; this.age = age; } }
-
实例化类:
使用new
关键字来创建类的实例。let person = new Person('Alice', 30);
-
方法定义:
类中可以包含方法,方法定义时不需要function
关键字。class Person { constructor(name, age) { this.name = name; this.age = age; } greet() { console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`); } }
-
静态方法:
使用static
关键字定义静态方法,它可以通过类本身调用,而不是类的实例。class MathUtils { static add(a, b) { return a + b; } } console.log(MathUtils.add(1, 2)); // 输出 3
-
继承:
使用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.`); } }
-
访问器属性:
使用get
和set
关键字定义访问器属性,它们允许你获取和设置私有变量的值。class Person { constructor(name) { this._name = name; } get name() { return this._name; } set name(value) { this._name = value; } }
-
私有字段:
使用#
符号定义私有字段,它们不能在类的外部被访问。class Person { #name; constructor(name) { this.#name = name; } getName() { return this.#name; } }
这些是 JavaScript 类的基本语法和特性。使用类可以更清晰地组织代码,并且使得面向对象编程在 JavaScript 中更加自然。如果你有更具体的问题或需要示例代码,请随时告诉我。