深入学习javascript继承之前,先了解下面的几个概念:
父类:被继承的类
子类:由继承得来的类
超类:也就是父类
抽象类:一般不用来实例化的类,它的用途是用来给其他类继承.
基类:提供给其他类可以继承的类
派生类:由基类继承而来的类
javascript对象继承通常有下面的5种方式:
1.对象冒充
2.call()方式
3.apply()方式
4.原型链
5.混合方式
A.对象冒充
所谓对象冒充,就是新的类冒充旧的类(旧的类必须采用构造函数方式),从而达到继承目的.
eg.1
复制代码 代码如下:
function people(name,sex,age){ //使用构造函数方式
this.name=name;
this.sex=sex;
this.age=age;
this.say=function(){
alert("My name is "+this.name);
};
this.doing=function(){
alert("I am speaking");
};
}
var Marry=new people("Marry","Woman","23");
Marry.say();
Marry.doing();
function white_people(name,sex,age){
this.inherit=people;
this.inherit(name,sex,age);
delete this.inherit;
this.area=function(){
alert("I am in Europe");
}
}
var Tom=new white_people("Tom","man","21");
Tom.say();
Tom.area();
alert(Tom.age);
上面的例子中,people是用来做white_people的基类,记住这个格式是用来对象冒充达到继承目的的
this.inherit=people; //冒充
this.inherit(name,sex,age); //继承
delete this.inherit; //删除继承
所有新属性和新方法都必须再删除了继承后定义,这样是为了避免覆盖父类的相关属性和方法.
另外,对象冒充支持多继承.
eg.2
复制代码 代码如下:
function worker(pay,work){
this.pay=pay;
this.work=work;
}
function city_worker(name,sex,age,pay,work){
this.inherit=people;
this.inherit(name,sex,age);
delete this.inherit;
this.inherit=worker;
this.inherit(pay,work);
delete this.inherit;
}
var Jerry=new city_worker("Jerry","man","21","$1000","coder");
Jerry.say();
alert(Jerry.work);
对象冒充有一个不足的地方:多继承机制实现时,如果基类存在相同的属性或者方法,将从后面的类继承.
B.call()方式
只是封装的对象冒充的一个函数.这样,我们不再需要写"经典"的三句话,而是用下面这句话代替:
基类.call(对象,参数列表)
eg.1
复制代码 代码如下:
function farmer(name,sex,age,pay,work){
people.call(this,name,sex,age);
worker.call(this,pay,work);
}
var Nicholas=new farmer("Nicholas","man","27","$3000","irrigator");
Nicholas.say();
alert(Nicholas.pay);
同样,call()存在同名属性和方法的小问题.
C.apply()方式
和call()一样.apply()也是对象冒充的一个封装函数.其格式为:
基类.apply(对象,参数数组);
eg.1
复制代码 代码如下:
function white_collar(name,sex,age,pay,work){
people.apply(this,new Array(name,sex,age));
worker.apply(this,[pay,work]);
}
var Jiessie=new white_collar("Jiessie","woman","26","$2500","editor");
Jiessie.say();
alert(Jiessie.work);
同样,apply()存在同名属性和方法的小问题.
D.原型链
上面三种方式都是采用构造函数方式的继承,对应地,也具有原型函数方式的继承:原型链.
eg.1
复制代码 代码如下:
function blue_collar(){
}
blue_collar.prototype.name="Jean";
blue_collar.prototype.age="33";
blue_collar.prototype.say=function(){
alert("my name is "+ this.name);
};
function city_blue_collar(){
}
city_blue_collar.prototype=new blue_collar();
var jj=new city_blue_collar;
jj.say();
原型链也具有了原型链的缺点:不能传递参数.另外,原型链不支持多继承,因为
E.混合方式
使用构造函数方式来写类的属性,对属性的继承采用call()或者apply()
使用原型方式来写的方法,对方法的继承采用原型链
eg.1
复制代码 代码如下:
function beauty(name,age){
this.name=name;
this.age=age;
}
beauty.prototype.say=function(){
alert("小女叫"+this.name);
};
function china_beauty(name,age,area){
beauty.call(this,name,age);
this.area=area;
}
china_beauty.prototype=new beauty();
china_beauty.prototype.from=function(){
alert("我来自"+this.area);
};
var diaochan=new china_beauty("貂禅","16","临洮");
diaochan.say();
diaochan.from();
alert(diaochan.age);
相关推荐:
什么是seo伪原创,seo就业前景伪原创怎么写 ,头像ai画怎么弄
在线AI文章生成器开启智能创作新时代
SEO查看-如何通过精确分析提升网站流量与排名,东丽网站建设价格
SEO优化公司一般怎么优化?揭秘专业SEO服务的操作流程,人工智能ai写作软件 哪一个好
SEO获取流量的必杀技:如何通过优化轻松提升网站排名,德州全网营销推广价格
SEO手段:提升网站流量的制胜法宝,idc网站怎么推广
seo配置是什么,seo设置是什么 ,ai图标制作教程
ChatGPT出现错误503?你需要知道的解决方案和应对策略,ai拉伸字效
360刷排名工具选哪家?揭秘2025年最强排名优化工具!,ai写作网站哪个好一点
颠覆写作方式:免费的AI续写软件助你轻松创作
SEO优化攻略:如何通过精准策略提升网站排名与流量,aI ow翻译
SEO导流:如何通过精准优化实现网站流量大爆发,网站优化优化怎么做
优化服务网-提升客户体验,打造全方位智慧服务平台,东莞网站建设员招聘信息
用AI创作的文章算原创吗?深度背后的逻辑与意义
SEO能给企业带来什么价值,seo的影响 ,ai蓝衣美女
ChatGPT登录界面都不显示了?可能是这些原因导致的!,上海小学ai智能课
SEO优化引导新官网,助力企业迈向成功之路,宋轶ai换
ChatGPT无法加载?检查您的网络设置并尝试重启ChatGPT,助您畅享无障碍智能对话体验,ai记录人
seo网络推广是什么,seo网络推广是什么意思 ,ai哪里注音
SEO组织:让您的网站流量倍增的秘密武器,seo 绩效标准
自动写文章的AI,提升效率的创作利器
ChatGPT免费用户每天的使用限制:如何高效利用,突破困境!,花花制作ai
专业SEO方案助力企业网站流量暴增,精准引流不再是难题,网站建设合同4篇
中文润色:提升表达的艺术,打造无懈可击的语言魅力,广告营销推广新思路论文
SEO中权重是什么意思?让你迅速网站排名的核心秘密!,长颈鹿智能AI点读机
为什么网站要做seo,网站做seo的目的是什么 ,ai初选
seo重点是什么,seo最重要的指标 ,ai网格怎么用
SEO新人必读:从零开始SEO的核心技巧与实践指南,网站邮件推广设计
seo运营经理是什么,seo和运营的区别 ,皖妍ai宁慕晴o
GPT优化:让你的工作与生活更高效、更智能,Ai__79
SEO详解:如何优化你的网站提升排名,获得更多流量,伊春湖南网站优化推广
ChatGPT怎么突然不能打开了?你需要了解的原因与解决办法,ai写作有什么问题吗怎么解决
seo用什么法宝,列出5种seo赚钱方式 ,ai怎么更改文档样式
ChatGPT桌面应用安装了,不能用?解决方案全攻略,让你轻松畅享AI助手!,绫波丽ai智能
SEO怎么做才能提升网站流量与排名?这篇文章给你全攻略,铁岭定制网站推广公司电话
SEO要点:提升网站排名的核心技巧与策略,福田市网站建设推广费用
SEO技术如何通过优化提升网站流量与排名,四平网站优化公司
SEO总结:如何通过优化提升网站排名与流量,关键词排名消失
seo需要学会什么编程,seo要会些什么 ,剪映怎样加ai
ChatGPT中显示已进行一处编辑,但看不到内容?你需要了解的隐藏问题!,ai敲
seo深度优化插件是什么,深度优化手机软件 ,ai的缩写
seo黑帽是什么,列举几种seo黑帽行为 ,穿老款的ai丢人吗
AI提供的阅读书目对学生的专业知识有多大帮助,沃奇ai
SEO项目:如何通过精确优化提升企业网站排名与转化率,武汉做网站优化的公司
ChatGPT翻译打不开?解决方法!,ai爱股票
SEO优化中怎么找关键词:全面解析与实战技巧,ai2002.4.8
ChatGPT安装包Windows版:让AI助力你的工作与生活,人工智能ai不是梦在线
SEO网络营销:如何通过精准优化提升品牌价值,青州建设网站电话
揭开“好的AI软件”背后的秘密:让生活和工作更智能的利器
ChatGPT网页版为什么不能用了?解析原因与解决办法,女人莫名其妙想ai