js中的继承详解
来源:互联网 发布:男士双肩包推荐 知乎 编辑:程序博客网 时间:2024/06/05 05:06
在js中实现的继承的方法可以有多种,除了原型继承之后,还可以使用借用、伪造构造函数的方法实现继承等等。接下来我们就详细的介绍一下这几种方式。
1.js中的原型继承
关于原型继承的内容其实在上一篇博客中已经介绍过,这里就只说一下它的实现方式,关于其他的内容就不过多重复了。
在js中实现原型继承的方式是借用构造函数的原型和实例来实现:
<script type="text/javascript">function Person(name,age){this.name=name;this.age=age;}function Teacher(name,sex){this.name=name;this.sex=sex;}Person.prototype.show="kk";//实现原型继承Teacher.prototype=new Person();var t1=new Teacher("aa","男");//使用Person原型中的属性console.log(t1.show);</script>
这种方式就是基于原型实现的继承,但是原型继承有一个很大的缺点,就是没有办法使用上级函数的私有属性逻辑,并且上级函数的私有属性也会进入到下级函数的原型中,从而可能会出现undefined的情况
2.借用、伪造构造函数的方式实现继承
其实这种实现继承的方式是借助call,apply函数来实现的继承,具体如下面的代码:
<script type="text/javascript">function Person(name,age){this.name=name;this.age=age;}function Teacher(sex,name,age){Person.call(this,name,age);this.sex=sex;}var t1=new Teacher("男","cc",30);console.log(t1.sex);console.log(t1.name);console.log(t1.age);</script>
这就是使用借用的方式实现的继承,这种方式和原型继承相比可以使用上级函数的私有属性啦,但是不能使用上级函数原型中的属性和方法。
3.总结比较两种继承方法
原型继承:原型继承是通过函数原型和实例的方式实现的继承,可以使用上级函数原型中的内容,但是不能使用上级函数的私有属性逻辑,并且上级函数的私有属性会传递到下级函数的原型,会造成undefined的情况
借用、伪造继承:使用call或者apply函数实现的继承可以使用上级函数的私有属性,但是不能够实现上级函数原型中的内容,并且还可以实现多继承。
4.基于这两种方式实现的继承--组合方式继承
<script type="text/javascript">function Person(name,age){this.name=name;this.age=age;}function Teacher(sex,name,age){Person.call(this,name,age);this.sex=sex;}Person.prototype.show="kk";Teacher.prototype=new Person();var t1=new Teacher("男","cc",30);console.log(t1.sex);console.log(t1.name);console.log(t1.age);console.log(t1.show);</script>
将两种实现继承的方式结合在一起,这样的话就具有了上面两种方式共同的优点
阅读全文
0 0
- js中的继承详解
- js继承机制详解
- js继承详解
- JS 中的继承
- js中的继承实现
- js中的继承实现
- JS中的继承实现
- js中的继承实现
- JS中的继承
- js中的继承
- js中的继承
- js中的继承机制
- JS中的继承实现
- js中的继承
- JS中的继承
- Js中的继承
- js中的继承
- js中的继承
- Android Framework学习(十二)之获取ServiceManager
- Code Vs-problem-1057 津津的储蓄计划
- java中的TCP/IP、Http、Scoket
- Linux安装Hbase(CentOS7+Hbase1.2.5+Hadoop2.8.0)
- 2014基本贪心1003
- js中的继承详解
- USACO
- Android学习日志——第8天
- bit与byte
- 项目中常用的过滤器
- jdbc.properties文件小结
- Spring ORM数据访问——概述
- 网页JavaScript内存结构分析
- 很全的mvn介绍