推荐答案
-- -------------------- ---- ------- ----- ------ - ----------------- - --------- - ----- - ------- - ------------------------- ----- - --------- - - ----- --- ------- ------ - ----------------- ------ - ------------ ---------- - ------ - ------- - ------------------------- --------- - - ----- --- - --- ---------- ------- ----------- ------------ -- --- --- ------
本题详细解读
1. class
关键字的基本用法
class
关键字用于定义一个类。类是 JavaScript 中面向对象编程的基础,它允许你创建具有属性和方法的对象。类定义的基本语法如下:
-- -------------------- ---- ------- ----- --------- - ----------------------- - -- ----- - --------- - -- ---- - --------- - -- ---- - -
constructor
方法是类的构造函数,用于初始化对象的属性。当你使用new
关键字创建类的实例时,constructor
方法会被自动调用。- 类中的方法定义不需要使用
function
关键字。
2. 类的继承
JavaScript 中的类支持继承,使用 extends
关键字可以实现类的继承。子类可以继承父类的属性和方法,并且可以重写父类的方法。
-- -------------------- ---- ------- ----- ---------- ------- ----------- - ----------------------- - ------------------ -- --------- -- -------- - --------- - -- ------- - -
super
关键字用于调用父类的构造函数或方法。在子类的构造函数中,super
必须在使用this
关键字之前调用。
3. 静态方法和属性
类还可以定义静态方法和属性,这些方法和属性属于类本身,而不是类的实例。静态方法通常用于执行与类相关的操作,而不是与实例相关的操作。
-- -------------------- ---- ------- ----- ------- - ------ -------------- - ----------------- -- - ------ ---------- - ------ -------------- - ----- -- - ------ ----------- - ----------------------- -- --- ---- -- - ------ ------- ------------------------------------ -- --- ---- -- - ------ ---------
- 静态方法和属性通过类名直接调用,而不是通过类的实例调用。
4. 类的实例化
使用 new
关键字可以创建类的实例。实例化类时,会调用类的构造函数,并返回一个新的对象。
const instance = new ClassName(parameters);
- 实例化类时,可以传递参数给构造函数,这些参数会用于初始化对象的属性。
5. 类的私有字段和方法
从 ES2022 开始,JavaScript 支持私有字段和方法。私有字段和方法只能在类的内部访问,外部无法直接访问。
-- -------------------- ---- ------- ----- ------- - ------------- - ---------- ---------------- - ----------------- -- - ------- ---------- - -------------- - -------------------------------- ---------------------- - - ----- -------- - --- ---------- ------------------------ -- --- ------- - ---- -- - ------- -------
- 私有字段和方法使用
#
前缀定义,只能在类的内部访问。
6. 类的 getter
和 setter
类中可以定义 getter
和 setter
方法,用于控制对类属性的访问和修改。
-- -------------------- ---- ------- ----- ------- - ------------- - ----------- - -- - --- ------- - ------ ------------ - --- --------------- - -- --------- -- -- - ----------- - --------- - - - ----- -------- - --- ---------- -------------- - --- ---------------------------- -- --- --
getter
和setter
方法允许你在访问或修改属性时执行自定义的逻辑。
7. 类的 this
绑定
在类的方法中,this
关键字指向当前实例。如果方法被提取出来单独使用,this
可能会丢失绑定。为了避免这种情况,可以使用箭头函数或 bind
方法来绑定 this
。
-- -------------------- ---- ------- ----- ------- - ------------- - ---------- - --- ----------- - ----------------------- - -------- - ------------------------ - ----------- - -- -- - ------------------------ - - ----- -------- - --- ---------- ----- ------ - ---------------- ----- ----------- - --------------------- --------- -- --- -- -------------- -- --- --
- 箭头函数会自动绑定
this
,而普通函数需要使用bind
方法来绑定this
。