原型链机制简述

来源:互联网 发布:dota 知乎 编辑:程序博客网 时间:2024/06/07 17:42

Javascript的原型链实现基础

 1.Javascript原型链是由双对象实现完成的。

例如:实例化一个对象str
var str = new String("abc");//创建一个String对象str


先来分析一下实例化对象的过程

1.1  调用String()的构造函数

1.2 拷贝构造函数中的属性和方法,将结果复制给str对象

1.3 创建唯一的一个原型对象,并将指针_proto_(谷歌浏览器中)指向该原型对象

1.4 将指针_proto_拷贝给str对象

由此可见,构建原型链的过程中,其中创建了两个对象(构造函数的实例对象、唯一的原型对象)

2.图示说明



该图中通过构造函数,实例化了3个对象。
每个对象再调用构造函数时,
       首先,会拷贝构造函数中的属性和方法(),隐藏属性有(contructor、prototype指针),
       其次,创建原型对象,并将prototype指针指向该原型对象(即prototype引用一个原型对象)
       最后,prototype指针指向该构造函数的原型对象,并且这三个实例都共用原型对象上的方法 (buy,addCart)
      


0 0