面试篇:原型链整理

一、原型链定义

        每个对象身上都有隐式原型__proto__属性,其指向创建该对象的构造函数的原型prototype,又因为prototype本身也是对象,它也有隐式原型__proto__,指向规则与上面一致;所以这样一来,从某个对象身上出发,依次寻找隐式原型的指向,将形成一个链条,该链条即是原型链。

二、对象基础知识

1.所有对象都是通过new 函数()创建的,该函数为构造函数

2.构造函数也是一个对象,其是通过new Function()创建的

3.对象赋值给变量,变量中存储的是对象所在的地址,该地址指向对象所在内存

4.原型prototype

其本质为一个对象

(1)所有构造函数都有原型属性prototype

(2)默认情况下,prototype为一个Object对象

(3)prototype中默认有一个属性:constructor,该属性指向构造函数本身

5.隐式原型 __proto__

(1)所有对象身上都有一个属性:__proto__

(2)隐式原型是一个对象,指向创建该对象的构造函数的原型__proto__

(3)在查找一个对象成员时,若对象本身没有,则会到隐式原型中寻找

三、原型与隐式原型出现原因

出现隐式原型与原型的根本原因:js中没有记录类型的元数据,所以js只能通过对象的隐式原型找到创建它的构造函数的原型,从而确定它的类型。

***所有构造函数的隐式原型都指向Function的原型

***所有函数原型的隐式原型,都指向Object的原型

四、原型链全貌如下图

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值