javascript每天必须学习的继承
朋友们,大家好,今天我们将在上一个套餐之后继续讲解本次讲座。今天是对之前内容的升级,也是对OOP思想的继承。让我们首先解释继承的真正含义,以及我们将在哪里使用它来继续。
继承是后代延续祖先的一系列属性和行为。后代仍然和祖先属于同一个家族。让我们用一些具体的描述来理解什么是继承。
中国人和美国人都是从人类祖先那里继承过来的,所以我们有相同的属性行为,但也有一些不同。稍后我们将继续讨论多态性。因此,通过上面的示例图,我们可以清楚地知道,以前的人是大同小异的,所以如果我们再看下面的示例代码,我们就会知道,通过用代码模拟继承,我们可以知道一种方法,尽可能少地编写代码来做尽可能多的事情。
//遗传继承函数extend (children,parent){//这只是继承原型链接为(var p in parent . prototype){ children[p]=parent . prototype[p]定义的行为;} }//人类祖先函数human () {this。重量=' 50公斤';this.height=' 180cmThis.hair=' brown}//eat human . prototype . eat=function(){ console . log(' eat ');}//Speak human . prototype . say=function(){ console . log(‘大家好,我来自地球’);}//行走的人类. prototype . walk=function(){ console . log(‘我是人类,生来就是两条腿直立行走的’);}//再现人类. prototype . multiply=function(){ console . log(‘和老婆做可耻的事是为了人类的繁荣’);}//中文函数Chinese(){ //调用继承函数Extend(this,Human);}//American函数American(){ //调用继承函数Extend(this,Human);}我们这样写,用高级语言模拟继承。让我们看看跑步后有没有问题。
跑完之后,我们发现了问题。这样写,可以继承原型链接,节省大量代码。我们写中美函数的时候,是不是只写了少量代码,所以继承了父类行为,实例可以调用父类拥有的行为函数。但是这样写,还没有完全实现继承,因为调用头发属性的时候根本没有起到作用。
//遗传继承函数extend (children,parent){//现在我们从父类实例继承,因此属性和方法将被继承为for(var p in parent){ if(type of children[p]=' undefined '){ children[p]=parent[p];} } }//人类祖先函数human () {this。重量=' 50公斤';this.height=' 180cmThis.hair=' brown}//eat human . prototype . eat=function(){ console . log(' eat ');}//Speak human . prototype . say=function(){ console . log(‘大家好,我来自地球’);}//行走的人类. prototype . walk=function(){ console . log(‘我是人类,生来就是两条腿直立行走的’);}//再现人类. prototype . multiply=function(){ console . log(‘和老婆做可耻的事是为了人类的繁荣’);}//中文函数Chinese(){ //调用继承函数Extend(这个,新的Human());}//American函数American(){ //调用继承函数Extend(这个,新的Human());}我们还需要看看跑步效果是否和我们想象的一样?
从上面的代码中不难看出,目前的继承函数实际上是从Human类的具体实例中复制而来的属性和行为,这样我们就可以进一步模拟类的继承。上面有一句话,我需要给你解释一下。
If(子类型[p]==' undefined '){ 0.}这里出现的关键字type实际上是一个运算符,用来查看变量是什么类型。如果是未定义的,操作的结果就是‘未定义’,所以我这样比较。如果子类没有定义这样的属性或行为函数,它将从父类继承(注意。
接下来,我们来看看多重继承是否可能。正如我们前面提到的,中国和美国的阶级都是从人类阶级继承而来的。现在,让我们编写另一个类来继承中文。
//川函数川满(){extend (this,new Chinese());}
现在我们已经编写了一个非常健壮的继承代码,理解非常简单。只要在声明一个新的类时调用构造函数中的继承函数,就可以实现属性和行为函数的完全继承。这样可以节省大量的代码,再次体现了OOP思想的优势。如果我们要模拟中国每个省的人,如果我用每个省的人类类的方式写,我会从太阳写到第二天的日落。写作传承的方式很多,每个人都有自己的写作。在这里,我会用最简单的方式向你解释。当你能熟练运用的时候,你也可以用自己的方式去写。javascript本身是一种非常灵活的语言。
综上所述,我们今天在封装的基础上做了进一步的升级,让我们实现了对象的继承,编写的代码量得到了进一步的压缩。想想是否能提高工作效率和代码的优雅度,是不是有点激动?如果我们跟随我的脚步,我们可以用最简单的方式理解最复杂的事情。其实节目并不复杂,复杂的原因是大家没有被正确引导。一件简单的事情被不同的人理解和诠释成不同的东西,这就使得学习变得复杂。更何况没有持续的教程带领大家一步步走向正确的方向,很难长期提高。
版权声明:javascript每天必须学习的继承是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。