深入解析JavaScript 原型继承

摘要:JavaScript 原型继承,学习js面向对象的朋友可以看看。十分的全面细致,具备肯定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。Object.prototypeJavaScript是基于原型继承的,任何对象都有一个prototype属性。Object.prototyp

JavaScript 原型继承,学习js面向对象的朋友可以看看。十分的全面细致,具备肯定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。


Object.prototype
JavaScript是基于原型继承的,任何对象都有一个prototype属性。Object.prototype是所有对象的根,并且不可改变。

Object.prototype=null; alert(Object.prototype);//[object Object] 

Object与Object.prototype
Object继承于Object.prototype,添加一个属性给Object.prototype上,同时也会反应到Object上。如:

Object.prototype.nameStr="Object Prototype"; Object.prototype.getName=function(){return this.nameStr}; alert(Object.getName());//Object Prototype 

Function.prototype与Object.prototype
因为Object.prototype是万物之根,所以Function.prototype也同时会继承Object.prototype的所有属性。如:

Object.prototype.nameStr="Object Prototype"; Object.prototype.getName=function(){return this.nameStr}; alert(Function.prototype.getName());//Object Prototype 

Object/Function/String/Number/Boolean/Array与Date

Object/Function/String/Number/Boolean/Array与Date都是函数,函数又继承于Function.prototype, 所以更改Function.prototype一样会影响到Object/Function/String/Number/Boolean/Array与Date。如:

Function.prototype.initType='Function Type'; Function.prototype.getType=function(){return this.initType}; //alert(Object.getType());//Function Type //alert(Date.getType());//Function Type //alert(Number.getType());//Function Type //alert(String.getType());//Function Type //alert(Boolean.getType());//Function Type alert(Array.getType());//Function Type 

同样Function.prototype也会把所受Object.prototype的影响,传递给它的下一层级。如:

Object.prototype.nameStr="Object Prototype"; Object.prototype.getName=function(){return this.nameStr}; alert(Function.prototype.getName());//Object Prototype alert(Array.getName());//Object Prototype //欢迎加入前台全栈开发交流圈一起学习交流:864305860alert(Boolean.prototype.getName());//Object Prototype //欢迎加入前台全栈开发交流圈一起学习交流:864305860Array/Array.prototype与Function.prototype/Object.prototype 

Array是函数对象,受Function.prototype的影响,而Array.prototype不是函数对象,所不受Function.prototype的影响,但所有对象受Object.prototype的影响,所以Array.prototype也会受Object.prototype的影响。如:

Object.prototype.nameStr="Object Prototype"; Object.prototype.getName=function(){return this.nameStr}; //alert(Function.prototype.getName());//Object Prototype //alert(Boolean.prototype.getName());//Object Prototype Function.prototype.initFun=function(){ return 'Function.prototype.initFun'; } //欢迎加入前台全栈开发交流圈一起学习交流:864305860alert(Array.initFun());//Function.prototype.initFun var arr=['a','b']; alert(arr.getName());//Object Prototype alert(arr.initFun());//Error: arr.initFun is not a function alert(arr.initFun);//undefined//欢迎加入前台全栈开发交流圈一起学习交流:864305860

结语

感谢您的观看,如有不足之处,欢迎批评指正。

本次给大家推荐一个免费的学习群,里面概括移动应用网站开发,css,html,webpack,vue node angular以及面试资源等。
对web开发技术感兴趣的同学,欢迎加入Q群:864305860,不论你是小白还是大牛我都欢迎,还有大牛整理的一套高效率学习路线和教程与您免费分享,同时每天升级视频资料。
最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰。

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】极客时间-数据分析实战45讲【完结】(2021-09-02 16:26)
【系统环境|windows】字节跳动前台面试题解析:盛最多水的容器(2021-03-20 21:27)
【系统环境|windows】DevOps敏捷60问,肯定有你想理解的问题(2021-03-20 21:27)
【系统环境|windows】字节跳动最爱考的前台面试题:JavaScript 基础(2021-03-20 21:27)
【系统环境|windows】JavaScript 的 switch 条件语句(2021-03-20 21:27)
【系统环境|windows】解决 XML 数据应用实践(2021-03-20 21:26)
【系统环境|windows】20个编写现代CSS代码的建议(2021-03-20 21:26)
【系统环境|windows】《vue 3.0探险记》- 运行报错:Error:To install them, you can run: npm install --save core-js/modules/es.arra...(2021-03-20 21:24)
【系统环境|windows】浅谈前台可视化编辑器的实现(2021-03-20 21:24)
【系统环境|windows】产品经理入门迁移学习指南(2021-03-20 21:23)
血鸟云
手机二维码手机访问领取大礼包
返回顶部