JavaScript中的原型链简析与原型链结构图绘制
原型链简析
在JavaScript中,对象有原型对象,而原型对象也是对象,所以原型对象也有原型对象,如此一来,一环紧扣一环,就形成了一种链式结构,简称原型链.
JS中的原型链是面向对象编程思想的很好体现,将原型链理解透彻就能理解JS中各种数据类型间的关系,在一定程度上可以装逼一把:“万物皆对象”。
JS中完整原型链结构图的绘制
分析思路如下:
1.先将函数看作是实例对象
构造函数:Function
原型对象:Function.prototype
实例对象:Fn = new Function();
2.再将函数看作是构造函数
构造函数:Fn(){}
原型对象:Fn.prototype
实例对象:var f = new Fn();
3.将Object考虑进来
构造函数:Object()
原型对象:Object.prototype
实例对象:obj = new Object()
4.将Object看作是实例对象
构造函数:Function
原型对象:Function.prototype
实例对象:Object
5.将Function看作是实例对象
注意:在js中只有一个对象Function,它的ptoto和prototype指向了同一个对象
Function.proto === Function.prototype
根据上述分析思路,绘制如下的原型链结构图