JS继承

拷贝继承: 通用型的 有new或无new的时候都可以
类式继承: new构造函数
原型继承: 无new的对象

拷贝继承

function CreatePerson(name,sex){   //父类
    this.name = name;
    this.sex = sex;
}
CreatePerson.prototype.showName = function(){
    alert( this.name );
};

var p1 = new CreatePerson('小明','男');
//p1.showName();


function CreateStar(name,sex,job){  //子类
    
    CreatePerson.call(this,name,sex);
    
    this.job = job;
    
}

//CreateStar.prototype = CreatePerson.prototype;

extend( CreateStar.prototype , CreatePerson.prototype );

CreateStar.prototype.showJob = function(){
};

var p2 = new CreateStar('黄晓明','男','演员');

p2.showName();


function extend(obj1,obj2){
    for(var attr in obj2){
        obj1[attr] = obj2[attr];
    }
}

类式继承

function Aaa(){   //父类
    this.name = [1,2,3];
}   
Aaa.prototype.showName = function(){
    alert( this.name );
};

function Bbb(){   //子类
    
    Aaa.call(this);
    
}

var F = function(){};
F.prototype = Aaa.prototype;
Bbb.prototype = new F();
Bbb.prototype.constructor = Bbb; //修正指向问题

var b1 = new Bbb();
//b1.showName();
//alert( b1.name );
//alert( b1.constructor );
b1.name.push(4);

var b2 = new Bbb();

alert( b2.name );

原型继承

function Parent(){
    this.lastName = 'James';
}

function Child(){
    this.age = 12;
}
Child.prototype = new Parent();

var test = new Child();
alert(test.age);
alert(test.lastName);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • js实现继承主要是通过原型链实现的。 那么问题来了?什么是原型链?基本思想是利用原型让一个引用类型继承另一个引用类...
    Miss____Du阅读 648评论 0 16
  • 原文链接 js的继承有6种方式,大致总结一下它们各自的优缺点,以及它们之间的关系。 1.原型链 js的继承机制不同...
    空_城__阅读 800评论 0 11
  • 借用构造函数继承 原型链式继承(借用原型链实现继承) 组合式继承 组合式继承优化1 组合式继承优化2 ES6中继承...
    lxt410725阅读 309评论 0 1
  • 今天去公司参加了小组会议,一开始我以为气氛会比较严肃,会像学校里开会那样,坐得端端正正,脸上应该做到没表情,而且眼...
    爱旅游的中吴野人阅读 105评论 0 0
  • 刚刚好
    品品葡萄酒阅读 258评论 0 1