您的位置:首页 > Web前端 > JavaScript

javascript实现继承主要方式

2017-04-10 17:56 387 查看

javascript继承

我理解的javascript的继承关键点是从其他对象上获取方法和属性到本对象上。所以基于本思想结合日常项目经验总结一下四种常用的继承方式:

1:构造继承

构造继承类似于Java中的继承思想,关键是在子对象的构造函数中,通过this和call方法,继承父对象的方法和属性,则在实例化子对象时,子对象同样具有父对象的属性和方法。

function A(){
this.show1=function(){
console.log("我是父类");
};
};
function B(){
A.call(this);
this.show2=function(){
console.log("我是子类");
};
};
//这样new出的B类对象,既具有A的方法,也具有B的方法。


2:原型链继承

我们都知道,对应面向对象语言,存在接口继承和实现继承,但ECMAScript无法实现接口继承,只支持实现继承(原型链)。

所以利用原型让一个引用类型继承另一对象的属性和方法,即为原型链继承。

function B(){
this.show2=function(){
console.log("我是子类");
};
};
function A(){
this.show1=function(){
console.log("我是父类");
};
};
B.prototype=new A();//即为实现原型链继承


3:组合式继承

组合式继承可以综合构造函数继承和原型链继承的优势。关键是利用构造函数继承实现属性继承,利用原型链实现方法的继承。这里不具体举例。

4:寄生式继承

关键:在拷贝原有对象原型基础上扩展新的属性和方法,构造新原型。

function Object(obj1){
functon ObjectChild(){};
ObjectChild.prototype=obj1;
return new  ObjectChild();
};
//以上函数,传入一个对象可以拷贝出子对象返回。在此基础上实现寄生继承。
function createObject(obj1){
var clone=object(obj1);
//以下可以在克隆对象继承上添加新属性和方法
clone.say=function(){};
//返回扩展后的子对象
return clone;
return new  ObjectChild();
};
//这样闯入一个父对象就可以得到继承并扩展后的子对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: