继承有几种方式,分别是什么?想要实现继承可以使用什么方法?

发布时间:2019-08-13 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了继承有几种方式,分别是什么?想要实现继承可以使用什么方法?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

这里是修真院前端小课堂,每篇分享文从

【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】

八个方面深度解析前端知识/技能,本篇分享的是:

【 继承有几种方式,分别是什么?想要实现继承可以使用什么方法?  

【修真院xx(职业)小课堂】课题名称

开场语:

大家好,我是IT修真院XX分院第X期的学员XX,一枚正直纯洁善良的XX程序员,今天给大家分享一下,修真院官网XX(职业)任务X,深度思考中的知识点——XXX

(1)背景介绍:

对象:“无序属性的结合,其属性值可以包含基本值、对象或者函数”。

面向对象编程(OOP):核心思想是将各种复杂关系,抽象成一个个对象,然后由对象之间的分工合作,完成对真实世界的模拟。

在JS中继承是一个非常复杂的话题,比其他任何面向对象语言中的继承都复杂得多。在大多数其他面向对象语言中,继承一个类只需使用一个关键字即可。在JS中想要达到继承公用成员的目的,需要采取一系列措施。

(2)知识剖析:

JavaScript语言的对象体系,不是基于“类”,而是基于构造函数(constructor)和原型(prototype

原型对象:只要创建一个新函数,就会根据特定的规则为该函数创建一个prototype属性指向其原型对象,默认情况下原型对象会自动获得一个constructor属性,该属性包含一个指向PRototyPE属性所在函数的指针

 

继承有几种方式,分别是什么?想要实现继承可以使用什么方法?

构造函数:本身是一个函数,出于创建特定类型新对象的目的而定义的,内部使用this变量,需要和new配合使用来创建实例,this变量会绑定在实例对象上。

封装模式:将“属性”和“方法”封装成对象的模式,即创建对象的方式

 

 

继承有几种方式,分别是什么?想要实现继承可以使用什么方法?

继承有几种方式,分别是什么?想要实现继承可以使用什么方法?

 

继承有几种方式,分别是什么?想要实现继承可以使用什么方法?

 

继承有几种方式,分别是什么?想要实现继承可以使用什么方法?

继承有几种方式,分别是什么?想要实现继承可以使用什么方法?

 

继承有几种方式,分别是什么?想要实现继承可以使用什么方法?

 

继承概念
许多OO语言都支持两种继承方式:接口继承和实现继承,接口继承只继承方法签名,实现继承则继承实际的方法

 

(3)常见问题:

js如何实现继承?

(4)解决方案:

 

继承有几种方式,分别是什么?想要实现继承可以使用什么方法?

Cat如何继承Animal的species属性

 

 

 

 

继承有几种方式,分别是什么?想要实现继承可以使用什么方法?

继承有几种方式,分别是什么?想要实现继承可以使用什么方法?


继承有几种方式,分别是什么?想要实现继承可以使用什么方法?


d.png](/img/bvbmXji)

![图片上传中...]

 

(5)编码实战:

阶段中运用比较广泛的是组合式继承,因为原型链和构造函数继承方式都有相对应的缺点,比如说原型链最主要的问题来自包含引用类型值的原型。而构造函数的缺点是不能很好地封装对象方法。一般情况下只有对象没有方法的情况下才会使用构造函数。而组合式继承继承了原型链和构造函数的优点,并完善了二者的不足。function Fn1(){

this.colors=["red","blue","green"];

}

function Fn2(){

}

Fn2.prototype=new Fn1();//继承了Fn1()对象

var instance1 = new Fn2();

instance1.colors.push("black");

console.LOG(instance1.colors);//"red","blue","green","black"

var instance2 = new Fn2();

console.log(instance2.colors);//"red","blue","green","black"

 

(6)拓展思考:

ES6中JavaScript拥有类的概念了,参考java等语言思考JavaScript如何使用类来简化封装、继承。

(7)参考文献:

参考:阮一峰的网络日志

参考:JavaScript高级程序设计

(8)更多讨论:

Q1:继承一般用到什么地方?

A :通常在一般的项目里不需要,因为应用简单,但你要用纯js做一些复杂的工具或框架系统就要用到了,比如webgis、或者js框架如jquery、Angular、vue什么的,不然一个几千行代码的框架不用继承得写几万行,甚至还无法维护。

Q2:如何确定原型和实例之间的关系? 

A:两种方法:第一种是使用instanceOf操作符,第二种是使用isPrototypeOf()方法。 

eg:

console.log(person instanceOf Child);//true 

console.log(Child.prototype.isPrototypeOf(instance));//true 

Q3:什么是浅复制?

A :浅复制是复制引用,复制后的引用都是指向同一个对象的实例,彼此之间的操作会互相影响。

(9)鸣谢:

感谢冯强师兄,此教程是在他们之前技分享的基础上完善而成。

(10)结束语:

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖

脚本宝典总结

以上是脚本宝典为你收集整理的继承有几种方式,分别是什么?想要实现继承可以使用什么方法?全部内容,希望文章能够帮你解决继承有几种方式,分别是什么?想要实现继承可以使用什么方法?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。