js类式继承

js继承主要分为类式继承和原型式继承。

 

类式继承:大概思路1 继承其构造函数,2.继承其方法,3 声明其构造结果 4 覆盖和扩充自己的方法

首先定义一个常用类Person

//定义构造函数
function Person(name){
this.name=name
}
//定义类的公用方法
Person.prototype.getName=function(){
return this.name
}
//创建Person对象调用
var boy=new Person("mali");
boy.getName();

 创建一个新类Author来进行继承Person

function Author(name,books){
//继承其构造函数
 Person.call(this,name);
 this.books=books;
}

//继承其公用方法
Author.prototype=new Person();
//声明其构造器
Author.prototype.constructor=Author;
//对类进行方法扩展
Author.prototype.getBooks=function(){
return this.books;
}

 为了简化类的声明,可以对整个过程进行包装,声明一个extend函数。

下面的封装函数对继承父类的方法进行了封装,但并没有对其构造函数进行继承,需要手动调用call来完成

 

function extend(subclass,superclass){
//定义一个新对象 作用是避开调用superclass的构造函数
 var F=function(){};
//将superclass的公用方法继承到F对象中
 F.prototype=superclass.prototype;
//再使用subclass来继承F 
subclass.prototype=new F();
subclass.prototype.constructor=subclass;
}

这样继承的话
function Author(name,book){
Person.call(this,name);
this.book=book;
}
extends(Author,Person);
Author.prototype.getBook=function(){
return this.book;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值