什么是原型链

简介: 什么是原型链

原型链:


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的基本方法。


相关文章
|
3月前
|
JavaScript 前端开发 开发者
什么是原型对象
【8月更文挑战第14天】什么是原型对象
83 0
|
3月前
|
前端开发 JavaScript
彻底理解前端原型链
【8月更文挑战第14天】彻底理解前端原型链
45 0
|
1月前
|
设计模式 JavaScript 前端开发
原型链
【10月更文挑战第9天】
|
28天前
|
设计模式 JavaScript 前端开发
原型链在哪些场景下比较适用
【10月更文挑战第13天】原型链在哪些场景下比较适用
29 0
|
前端开发
前端原型和原型链构造函数的使用
前端原型和原型链构造函数的使用
82 0
|
6月前
|
JavaScript 前端开发
prototype(原型对象)
原型对象(prototype)是 JavaScript 中一种特殊的对象,它用于实现对象之间的属性和方法共享。在 JavaScript 中,所有的对象都有一个原型(除了全局对象,如 Math、Date 等),当我们试图访问一个对象的属性或方法时,如果该对象本身没有这个属性或方法,Jav
26 1
|
12月前
|
JavaScript 前端开发
原型和原型链
原型和原型链
32 0
38 # 简单描述原型链
38 # 简单描述原型链
31 0
|
JavaScript 前端开发
什么是原型链?
什么是原型链?
169 0
|
前端开发 JavaScript
原型、原型链和继承~我终于搞定了啊~~
不管是在学习JavaScript,还是面试找工作,逃不过去的就是原型、原型链和继承这几个重点和难点;对于这些内容的掌握还是很有必要的。
112 0
原型、原型链和继承~我终于搞定了啊~~