昼猫笔记 -- 面向对象(II) - 继承

 

继承

由于js不像java那样是真正面向对象的语言,js是基于对象的,它没有类的概念。

所以,要想实现继承,可以用js的原型prototype机制或者用applycall方法去实现,还有就是js可以通过构造函数和原型的方式模拟实现类的功能。

另外,js类式继承的实现也是依靠原型链来实现的。


继承方法

  1. call继承:子类继承父类,将父类的私有属性继承为子类的私有属性
复制代码
function Xx() {     this.name = '小欣欣' }; Xx.prototype.age = 18;  function Zm() {     this.name = '昼猫'     Xx.call(this) }; Zm.prototype.age = 13;  var xx = new Xx; var zm = new Zm; console.log(zm.name); // 小欣欣
复制代码

 

 

  1. 原型继承 将父类的私有和共有属性都继承为子类的共有属性
复制代码
function Xx() {    this.name = '小欣欣' }; Xx.prototype.age = 18;  function Zm() {    this.name = '昼猫' }; Zm.prototype.age = 13;  // 父类的实例赋值给子类的原型Zm.prototype = new Xx  var xx = new Xx; var zm = new Zm; console.log(zm);
复制代码

 

 

  1. 冒充对象继承:将父类私有的和共有的都继承为子类私有的
复制代码
function Xx() {     this.name = '欣欣' } Xx.prototype.age = 18function Zm() {     this.name = '昼猫'    var temp = new Xx     for (var key in temp) {         this[key] = temp[key]     }     temp = null; } Zm.prototype.age = 13;  var xx = new Xx; var zm = new Zm; console.log(zm.name, zm.age); // 欣欣 18console.log(zm.__proto__.age); //
                        
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信