JavaScript实现继承的简单实例
在JavaScript中,继承是面向对象编程中重要的概念之一。通过继承,子类可以使用父类的属性和方法,从而避免了重复编写代码的麻烦。本文将介绍几种常见的实现继承的方式,并提供相应的代码示例。
1. 原型链继承
原型链继承是JavaScript中最常用的继承方式。它的实现方式非常简单,只需要将子类的原型对象指向父类的实例即可。
-- -- -------- ------------ - --------- - ----- - ------------------------ - ---------- - ----------------------- -- -- -- -------- ------------- ------ - ---------- - ------ - ----------------- - --- --------- --- - - --- -------------- --- ------------ -- -- -----
上面的代码中,我们定义了一个Person
父类和一个Student
子类。我们通过将Student
子类的原型对象指向Person
父类的实例来实现继承。这样,Student
子类就可以访问到Person
父类的属性和方法了。
但是,原型链继承也有一些缺点。由于子类的原型对象指向了父类的实例,所以父类中的引用类型属性会被多个子类实例共享。这时候,如果一个子类实例修改了该引用类型属性,会导致其他子类实例的该属性也被修改了。
2. 构造函数继承
构造函数继承是通过在子类构造函数中调用父类构造函数来实现的。这样一来,实例化子类时就可以向父类传参,从而得到不同的实例对象。
-- -- -------- ------------ - --------- - ----- - ------------------------ - ---------- - ----------------------- -- -- -- -------- ------------- ------ - ----------------- ------ -- -------- ---------- - ------ - --- - - --- -------------- --- ------------ -- ------------ -- --- - --------
在上面的代码中,我们定义了一个Person
父类和一个Student
子类。在Student
子类的构造函数中,我们使用call
方法调用了Person
父类的构造函数。这样一来,Student
子类就可以获得父类的属性,从而实现了继承。
但是,由于子类只能继承父类的属性而不能继承父类的原型对象,所以子类无法访问到Person
父类的sayName
方法。
3. 组合继承
组合继承是原型链继承和构造函数继承的结合体。它通过在子类构造函数中调用父类构造函数来实现属性的继承,同时又通过将子类的原型对象指向父类的实例来实现方法的继承。
-- -- -------- ------------ - --------- - ----- - ------------------------ - ---------- - ----------------------- -- -- -- -------- ------------- ------ - ----------------- ------ -- -------- ---------- - ------ - ----------------- - --- --------- -- -------- --- - - --- -------------- --- ------------ -- -- -----
在上面的代码中,我们定义了一个Person
父类和一个Student
子类。在Student
子类的构造函数中,我们使用
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/3735