时间:2021-05-25
原型链是一种机制,指的是JavaScript每个对象包括原型对象都有一个内置的[[proto]]属性指向创建它的函数对象的原型对象,即prototype属性。 作用:原型链的存在,主要是为了实现对象的继承。
一、 记住以下5句话,轻松搞定js原型链
二、下边我们结合一小段代码来详细说明原型链的画图过程
function Game(brand,name,price) { this.price= price; this.brand = brand; this.name = name; } var g1 = new Game('EA','彩虹六号','200rmb');1.根据上边的代码我们先定义了一个构造函数叫做Game,假设Game在堆内存中的地址为0x100;并通过它new出了一个实例对象g1,g1在堆内存中的地址为0x200。构造函数Game有天生属性prototype,并指向其原型对象(在堆内存中的地址为0x300)),实例对象g1具有天生属性_ _ proto _ _ ,并指向其构造函数的原型对象;原型对象具有天生属性constructor指向其对应的构造函数。然后我们得到如下图:
2.由于所有的原型对象都是Object(0x400) new 出来的,所以0x300这个原型对象同时也是Object的一个实例对象,既然是实例对象就具有天生属性_ _ proto _ _ ,并指向其构造函数的原型对象(0x500);因为Object自身也是一个构造函数,所以其也有天生属性prototype,并指向其原型对象(0x500);又因为所有的原型对象都是Object(0x400) new 出来的,所以0x500这个原型对象也是Object new出来的,因为0x500是Object的原型对象,所以0x500的天生属性constructor指向Object;由于底层规定Object.prototype._ _ proto _ _ 等于null,然后我们得到如下图:
3.
我们再来看构造函数,由于所有的构造函数都是Function new出来的,所以Function(0x600) new出了自己、Object、Game这三个构造函数,那么这三个构造函数都是Function的实例对象,它们的_ _ proto _ _ 都指向Function的prototype(0x700),0x700的天生属性constructor又指向0x600;由于0x700是Object new 出来的,所以0x700的_ _ proto _ _ 指向Object 的原型对象0x500,最终我们得到如下终极原型链图:
到此这篇关于js原型链的文章就介绍到这了,更多相关js原型链内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了JavaScript原型与原型链用法。分享给大家供大家参考,具体如下:一句话说明什么是原型:原型就是一个JavaScript对象,原型能存储我们的
接下来我们来简单的用五句话来说下这个标签引流技巧~第一句话:先确定好你的产品最适合什么目标人群(找部分用户号是这类人群的,老客户更好)第二句话:找几个核心关键词
(1)怎样将电脑里有可用字体加入WINFORM中的ComboBox中:一句话搞定:comboBox1.Items.AddRange(FontFamily.Fam
一句话次导航是什么次导航:在网站的页脚,用首页的目标关键词打上锚文本指向给首页。目的是增加目标关键词的内链,提高URL的权重。一句话次导航:编辑一句完整话语,在
使用jquery控制div的显示与隐藏,一句话就能搞定,例如:1.$("#id").show()表示为display:block,$("#id").hide()