在 JavaScript 中,构造函数是创建新对象的一种特殊函数。在 ES5 中,我们可以使用函数(Function)或对象(Object)来创建构造函数以及对象,然而,ES6 为了解决这个问题,引入了 Constructor 构造器。
Constructor 构造器
Constructor 构造器是 ES6 中一种新的用于创建类的方法。它允许我们使用 class 关键字声明一个类,并且定义一个构造函数来初始化这个类的实例对象。
-- -------------------- ---- ------- ----- ------ - ----------------- ---- - --------- - ----- -------- - ---- - - ----- ----- - --- --------------- ---- ------------------------ -- ----- ----------------------- -- --
在上面的代码中,我们定义了一个名为 Person 的类,它包含一个构造函数来初始化 name 和 age 属性,并使用 new 关键字实例化了一个名为 alice 的 Person 对象。
除了定义一个构造函数之外,我们还可以在类中定义其他函数,它们会成为类的原型方法:
-- -------------------- ---- ------- ----- ------ - ----------------- ---- - --------- - ----- -------- - ---- - ---------- - ------------------- -- ---- -- ------------ --- --- ----------- ----- ------- - - ----- ----- - --- --------------- ---- ----------------- -- ------ -- ---- -- ----- --- --- -- ----- ----
在上面的代码中,我们向 Person 类中添加了一个名为 sayHello 的函数作为原型方法,它可以被 alice 对象调用。
继承
在 ES6 中,我们可以使用 extends 关键字来创建子类,并且使用 super 关键字来调用父类的构造函数。
-- -------------------- ---- ------- ----- ------ - ----------------- - --------- - ----- - --------- - --------------- ---- -- ---------------- - - ----- --- ------- ------ - ----------------- ------ - ------------ ---------- - ------ - ---------- - --------------- ----- -- ----------------- - - ----- ---- - --- ----------- ------- ------------ --------------- -- -- ---- -- ----- ---------------- -- -- ----- -- ------ ----------
在上面的代码中,我们定义了一个 Animal 类,它包含一个构造函数和一个 sayName 方法。然后我们创建了一个名为 Dog 的子类,它继承自 Animal 类,并添加了一个构造函数和一个 sayBreed 方法。
在 Dog 类的构造函数中,我们通过调用 super(name) 来调用父类 Animal 的构造函数,并将 name 参数传递给它。这样,我们就可以在子类中初始化父类的属性了。
总结
在本文中,我们学习了 ES6 中的 Constructor 构造器,它使得创建类更加方便和直观。我们也学习了如何在类中定义构造函数和原型方法,以及如何通过继承来创建子类。Constructor 构造器为我们提供了一种更加舒适的方式来创建类。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6536402a7d4982a6ebe3921a