当前位置:网站首页>js中的原型和原型链
js中的原型和原型链
2022-07-01 02:36:00 【爱前端的茂茂】
JS的原型和原型链算是前端面试题的热门题目了,基本上遇见的概率会很大吧!
首先,什么是原型?
每一个javascript对象(除null外)创建的时候,就会与之关联另一个对象,这个对象就是我们所说的原型,每一个对象都会从原型中“继承”属性。
举个例子:
function Person(age) {
this.age = age
}
Person.prototype.name = 'kavin'
var person1 = new Person()
console.log(person1.name) //kavin就是说在通过构造函数创建实例的时候,如果去实例中找寻某个属性值的时候,如果他有的话就会直接输出,如果没有的话,就会去它的原型对象中去找。

prototype:每个函数都有一个prototype属性,这个属性指向函数的原型对象。
__proto__:这是每个对象(除null外)都会有的属性,叫做__proto__,这个属性会指向该对象的原型。
constructor:每个原型都有一个constructor属性,指向该关联的构造函数。
原型相关的知识考点一般就是围绕这张图,那怎么去验证这张图的正确性呢?
console.log(Person===Person.prototype.constructor) // true
console.log(person.__proto__ == Person.prototype) // true
console.log(person.__proto__.constructor == Person) // true
console.log(person.constructor == Person) // true然后什么是原型链呢?
单的回顾一下构造函数、原型和实例的关系:每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针。那么假如我们让原型对象等于另一个类型的实例,结果会怎样?显然,此时的原型对象将包含一个指向另一个原型的指针,相应地,另一个原型中也包含着一个指向另一个构造函数的指针。假如另一个原型又是另一个类型的实例,那么上述关系依然成立。如此层层递进,就构成了实例与原型的链条。
简单的表达就是:上边说道如果实例没有一个属性,它会去它的原型中去找,但是如果它的原型中也没有这个属性呢,会停止寻找么,不一定,因为它的原型可能也有自己的原型,这个时候他就会去它的原型的原型中去寻找,这个时候会停下么,还是不一定,要看他原型的原型有没有原型,这样就形成了一条原型链。
直到最后一个找不到原型时返回null

边栏推荐
- Thread Detach
- A small document of JS method Encyclopedia
- DenseNet网络论文学习笔记
- Analysis and solution of anr problems
- Small program cloud development -- wechat official account article collection
- Proxy support and SNI routing of pulsar
- 园区运营效率提升,小程序容器技术加速应用平台化管理
- 使用ipmitool配置X86服务器的BMC网络和用户信息
- 如何在智汀中實現智能鎖與燈、智能窗簾電機場景聯動?
- js防抖和节流
猜你喜欢

联想X86服务器重启管理控制器(XClarity Controller)或TSM的方法

5款主流智能音箱入门款测评:苹果小米华为天猫小度,谁的表现更胜一筹?

零基础自学SQL课程 | 窗口函数

视觉特效,图片转成漫画功能

UE4渲染管线学习笔记

Find the length of the common part of two line segments

Pychar open remote directory remote host

Rocketqa: cross batch negatives, de noised hard negative sampling and data augmentation

Pulsar的Proxy支持和SNI路由

Visual effects, picture to cartoon function
随机推荐
Map array function
centos 安装多个版本的php并切换
kubernetes资源对象介绍及常用命令(二)
端口号和进程号的区别?
The latest wechat iPad protocol code obtains official account authorization, etc
MnasNet学习笔记
Desai wisdom number - other charts (parallel coordinate chart): employment of fresh majors in 2021
robots.txt限制搜索引擎收录
How do I open an account on my mobile phone? Also, is it safe to open an account online?
AI 边缘计算平台 - BeagleBone AI 64 简介
LabVIEW calculates the camera image sensor resolution and lens focal length
【微信小程序開發】樣式匯總
现在开户有优惠吗?另外,手机开户安全么?
522. Longest special sequence II
Pulsar theme compression
SWT / anr issues - ams/wms
Focusing on green and low carbon, data center cooling has entered a new era of "intelligent cooling"
如果我在北京,到哪里开户比较好?另外,手机开户安全么?
[multi source BFS] 934 Shortest Bridge
Sampling Area Lights