摘要:前两天学习继承的时候搜到了阮大神写的一篇文章主要讲了种构造函数继承方式我写此篇文章主要是为了总结学习所得父构造器子构造器是子构造器出来的对象只能继承父构造器中的属性代表继承属性和方法第一种叫构造函数绑定此种继承方式只能继承父构造器中的属性不
前两天学习JS继承的时候,搜到了阮大神写的一篇文章http://www.ruanyifeng.com/blo...
主要讲了5种构造函数继承方式.我写此篇文章主要是为了总结学习所得.
父构造器Animal,子构造器Cat,cat是子构造器new出来的对象,"只能继承父构造器中的属性" 代表继承属性和方法.
第一种叫构造函数绑定:
此种继承方式只能继承父构造器中的属性,不能继承父构造器原型上的属性.Animal.apply(this, arguments)也可用Animal.call(this)替换.cat对象有两个层级,第一级存放着自有属性以及父构造器中的属性,第二级存放着自己函数原型上的属性(Cat.prototype)
第二种叫prototype模式:
此种继承方式既能继承父构造器中的属性,也能继承父构造器原型上的属性.cat对象有三个层级,第一级存放着自有属性,第二级存放着父构造器的属性(加上constructor,指向创建该对象(cat)的构造器(Cat)),第三级存放着父构造器原型上的属性.
第三种叫直接继承prototype:
此种继承方式只能继承父构造器原型上的属性.cat对象有两个层级,第一级存放着自有属性,第二级存放着父构造器原型上的属性(加上constructor,指向创建该对象(cat)的构造器(Cat)).注意:Cat.prototype.constructor = Cat会将Animal.prototype.constructor也改成Cat,从而影响父构造器创建对象
第四种叫空对象作为中介:
此种继承方式只能继承父构造器原型上的属性.cat对象有三个层级,第一级存放着自有属性,第二级存放着临时构造器F的属性(加上constructor,指向创建该对象(cat)的构造器(Cat)),第三级存放着父构造器原型上的属性.注意:临时构造器只充当中介的作用,一般不会有自己的属性.
第五种叫浅拷贝继承(软大神称之为拷贝继承):
此种继承方式只能继承父构造器原型上的属性.cat对象有两个层级,第一级存放着自有属性,第二级存放着父构造器原型上的除了constructor和__proto__的属性(不会拷贝原型上的constructor和__proto__属性).适合父构造器原型上的自增属性为基本数据类型的情况.
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/81694.html
摘要:特意对前端学习资源做一个汇总,方便自己学习查阅参考,和好友们共同进步。 特意对前端学习资源做一个汇总,方便自己学习查阅参考,和好友们共同进步。 本以为自己收藏的站点多,可以很快搞定,没想到一入汇总深似海。还有很多不足&遗漏的地方,欢迎补充。有错误的地方,还请斧正... 托管: welcome to git,欢迎交流,感谢star 有好友反应和斧正,会及时更新,平时业务工作时也会不定期更...
摘要:但是大家了解阮一峰快排事件吗,是否知道快排的最佳实践本文从一个争执讲起,通过生动详实的例子让你真正了解快排。参考文档快速排序复杂度分析如何看待文章面试官阮一峰版的快速排序完全是错的快速排序算法的优化思路总结 只要是个工程师,就或多或少的知道快排,其中很多人都能轻松的写出一个快排的实现。但是大家了解阮一峰快排事件吗,是否知道快排的最佳实践?本文从一个争执讲起,通过生动详实的例子让你真正了...
摘要:如果该函数的返回值大于,表示第一个成员排在第二个成员后面其他情况下,都是第一个元素排在第二个元素前面。第三次执行,为上一轮的返回值,为第四个成员。第四次执行,为上一轮返回值,为第五个成员。 JS中ArrayAPI学习笔记 记博客,时常回顾.尤其是面试之先回顾阮一峰标准库Array对象 1 一些标准库回顾 showImg(https://segmentfault.com/img/remo...
阅读 1501·2021-09-23 11:21
阅读 2300·2021-09-07 10:13
阅读 803·2021-09-02 10:19
阅读 1081·2019-08-30 15:44
阅读 1695·2019-08-30 13:18
阅读 1884·2019-08-30 11:15
阅读 1067·2019-08-29 17:17
阅读 1982·2019-08-29 15:31