什么是原型链

简介: 什么是原型链

原型链:


JavaScript万物都是对象,对象和对象之间也有关系,并不是孤立存在的。对象之间的继承关系,在JavaScript中是通过prototype对象指向父类对象,直到指向Object对象为止,这样就形成了一个原型指向的链条,专业术语称之为原型链。





使用:


function Fn() {}// Fn为构造函数

var f1 = new Fn();//f1是Fn构造函数创建出来的对象

构造函数的prototype属性值就是对象原型。(Fn.prototype就是对象的原型)

构造函数的prototype属性值的类型就是对象 typeof Fn.prototype===object.

对象原型中的constructor属性指向构造函数 (Fn.prototype.constructor===Fn)

对象的__proto__属性值就是对象的原型。(f1.__proto__就是对象原型)

Fn.prototype===f1.__proto__ 其实它们两个就是同一个对象---对象的原型。

所有Fn.prototype.__proto__===Object.prototype

typeof Object.prototype ===object。

Object.prototype.__proto__===null。


我讨论原型就是指的对象与原型对象之间的关系。所以原型链也称之为对象链。






总结:函数的原型对象constructor默认指向函数本身,原型对象除了有原型属性外,为了实现继承,还有一个原型链指针__proto__,该指针指向上一层的原型对象,而上一层的原型对象的结构依然类似,这样利用__proto__一直指向Object的原型对象上,而Object的原型对象用Object.prototype.__proto__ = null表示原型链的最顶端,如此变形成了javascript的原型链继承,同时也解释了为什么所有的javascript对象都具有Object的基本方法。


相关文章
|
6月前
|
JavaScript
什么是原型链?如何继承?
什么是原型链?如何继承?
51 0
|
3月前
|
JavaScript 前端开发 开发者
什么是原型对象
【8月更文挑战第14天】什么是原型对象
83 0
|
1月前
|
设计模式 JavaScript 前端开发
原型链
【10月更文挑战第9天】
|
29天前
|
设计模式 JavaScript 前端开发
原型链在哪些场景下比较适用
【10月更文挑战第13天】原型链在哪些场景下比较适用
30 0
|
6月前
|
JavaScript 前端开发
原型,原型链
原型,原型链
|
JavaScript 前端开发
原型和原型链
原型和原型链
33 0
38 # 简单描述原型链
38 # 简单描述原型链
31 0
|
JavaScript 前端开发
什么是原型链?
什么是原型链?
169 0
|
存储 JavaScript 前端开发
深入理解原型与原型链
当我们在 JavaScript 中创建一个对象时,它会自动继承一个称为“原型”的对象。如果该对象访问一个属性或方法,但在自己的属性列表中找不到,它会沿着原型链向上查找,直到找到该属性或方法为止。在本篇文章中,我们将深入探讨 JavaScript 中的原型与原型链。
|
JavaScript
关于原型、原型链我所知道的
关于原型、原型链我所知道的
78 0