梳理 | JavaScript 原型链

本文旨在进行学习过程中的知识梳理,如有问题还望多多指教。

1、概念

F.prototype 原型属性
o.___proto____ 原型对象

___proto____ 是站在对象的角度讨论其原型对象
prototype 是站在构造函数的角度讨论原型属性, 或构造函数创建的对象的
原型对象

实例成员就是 由构造函数创建的对象的成员
静态成员就是 构造函数的成员

2、原型链

Object

梳理 | JavaScript 原型链_第1张图片
Object原型链

梳理 | JavaScript 原型链_第2张图片
Object原型链
var o1 = new Object();

两个Object

梳理 | JavaScript 原型链_第3张图片
创建两个对象

var o1 = new Object();
var o2 = new Object();

两个Func

梳理 | JavaScript 原型链_第4张图片
Func原型链

var f1 = new Func();
var f2 = new Func();

Func函数原型属性发生转向,黄色变为红色,指向f2

梳理 | JavaScript 原型链_第5张图片
Func函数原型属性发生转向

var f1 = new Func();
var f2 = new Func();
梳理 | JavaScript 原型链_第6张图片
构造函数与原型属性
var p = new Object()

Person对象完整原型链结构

梳理 | JavaScript 原型链_第7张图片
完整原型链

var p = new Person()
p.constructor == Object.prototype.constructor //true

两个Person对象最终都指向Object.prototype对象,Object.prototype对象的proto指向null

梳理 | JavaScript 原型链_第8张图片
两个对象原型链

var p1 = new Person();
var p2 = new Person();

你可能感兴趣的:(梳理 | JavaScript 原型链)