旗下微信矩阵:

原型与原型链有什么关系?宜享花带你全面认识

2023-01-31 14:16 · 互联网     


很多人会在很多地方看见原型链这个词,但是会一头雾水,不知道这是什么东西。实际上在计算机领域里,当我们访问一个对象的属性时,如果这个对象内部不存在这个属性,那么他就会去prototype里找这个属性,这个prototype又会有自己的prototype,于是就这样一直找下去,也就是我们平时所说的原型链的概念。

提到原型链,我们首先应该认识原型。在JavaScript中,当定义一个函数数据类型(普通函数、类)时,往往会自带一个prototype属性,这个属性指向函数的原型对象,并且这个属性是一个对象数据类型的值。

我们的引用类型都有一个隐式原型属性,属性值是普通的对象;同理,所有函数也都有一个原型属性,属性值是普通的对象;所有引用类型__proto__属性指向它构造函数的prototype。

也就是说,当访问一个对象的某个属性时,系统会先在这个对象本身属性上查找。假如没有找到,则会去它的__proto__隐式原型上查找,即它的构造函数的prototype;假如还没有找到将继续在构造函数的prototype的__proto__中查找。

从以上可以看出,这个查找的过程是单链,只往一个方向流向,没有回路,如此一步一步向上查找即可形成一个链式结构,这就是原型链。

原型以及原型链在信用数据整合方面经常被提及和使用,宜享花认为,在JavaScript中万物都是对象,对象和对象之间也有关系,两者之间相辅相成,并非孤立存在。对象之间的继承关系,在JavaScript中是通过prototype对象指向父类对象,直到指向Object对象为止,这样就形成了一个原型指向的链条。

其实全面认识原型链,对于很多人的工作乃至生活会有很大的助力,所以宜享花希望大家都能正确理解原型、原型链的关系,为之后的学习、工作和生活锦上添花。

(免责声明:本文转载自其它媒体,转载目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责。请读者仅做参考,并请自行承担全部责任。)