JavaScript 不包含传统的类继承模型,而是使用 prototype 原型模型。JavaScript 中的每个对象都有一个内部私有的链接指向另一个对象,这个对象就是原对象的原型。这个原型对象也有自己的原型,直到对象的原型为 null 为止(也就是没有原型)。这种一级一级的链结构就称为原型链。
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Inheritance_and_the_prototype_chain
❶使用原型链的继承方式。
❷两种不同的属性:一种是对象自身的属性,另一种是继承于原型链上的属性。
❸在原型链上查找属性比较耗时,对性能有副作用。另外,试图访问不存在的属性时会遍历整个原型链。
❹遍历对象的属性时,原型链上的每个属性都是可枚举的。
var obj = {a: 1};
// 对象obj继承了Object.prototype上面的所有属性
//原型链: obj ---> Object.prototype ---> null
obj.hasOwnProperty('a');//true,hasOwnProperty 是 JavaScript 中唯一一个只涉及对象自身属性而不会遍历原型链的方法。
var arr = ["w", "j", "y"];
// 数组都继承于Array.prototype (indexOf, forEach,等方法都是从它继承而来).
// 原型链: arr ---> Array.prototype ---> Object.prototype ---> null
除非为了兼容新 JavaScript 特性,否则不要扩展原生对象的原型。
http://wangjingyi.iteye.com/blog/2038264
分享到:
相关推荐
JavaSciptDOM基本操作,JavaScipt函数基础,JavaScipt流程语句,JavaScript变量,JavaScript数据类型,JavaScript数组,JavaScript正则表达式,JavaScript字符串函数,Window对象等图解。JS高手进阶的工具图谱
NULL 博文链接:https://ywxowen999.iteye.com/blog/1135884
【技术分享】从浅入深 Javascript 原型链与原型链污染 APT web安全 网络安全 安全 自动化
本文实例分析了Javascript原型链的原理。分享给大家供大家参考,具体如下: 一、JavaScript原型链 ECMAScript中描述了原型链的概念,并将原型链作为实现继承的主要方法。其基本思想是利用原型让一个引用类型继承另一...
深度探讨javascript函数的原型链和闭包
主要介绍了JavaScript原型链与继承操作,结合实例形式总结分析了javascript原形链与继承的相关概念、使用方法及操作注意事项,需要的朋友可以参考下
对于javascript原型链,以前都觉得是个很深的东西,一直没有理解很明白,今天看了一些介绍后,发现这张图,表示再没有什么语言能比这张图说得清楚了。 看了这张图后突然对javascript有了质的理解。 javascript的...
主要介绍了JavaScript原型链示例,有需要的朋友可以参考一下
在上一篇文章中,介绍了原型的概念,了解到在javascript中构造函数、原型对象、实例三个好基友之间的关系:每一个构造函数都有一个“守护神”——原型对象,原型对象心里面也存着一个构造函数的“位置”,两情相悦,...
本文通过实例详细向我们分析了javascript原型链维护和继承的问题,十分的详尽,十分的全面,这里推荐给大家。
主要介绍了Javascript原型链及instanceof原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
简单说一说对JavaScript原型链的理解,希望对大家学习JavaScript原型链有所帮助,具体内容如下
主要介绍了javascript原型链继承用法,实例分析了javascript原型链继承中的技巧与相关注意事项,非常具有实用价值,需要的朋友可以参考下
主要介绍了Javascript原型链和原型的一个误区,需要的朋友可以参考下
主要介绍了浅谈javascript原型链与继承的相关资料,需要的朋友可以参考下
本文实例讲述了javascript原型链学习记录之继承实现方式。分享给大家供大家参考,具体如下: 在慕课网学习继承的笔记: 继承的几种方式: ① 使用构造函数实现继承 function Parent(){ this.name = 'parent'; } ...