原型与原型链

原型(prototype)

  • List item

  • **原型对象:**每个函数都有一个prototype对象,默认指向一个object空对象,即称为原型对象
    **constructor:**原型对象中有一个constructor,指向函数本身(函数有prototype,prototype有constructor,指向函数)
    给原型对象添加属性,实例可以访问

  • List item

显式原型和隐式原型

**显式原型:**每个函数都有一个prototype对象【创建函数的时候创建】
隐式原型:每个实例对象都有一个__proto__【创建对象的时候创建】
**注意:**对象隐式原型的值为其对应的构造函数显式原型的值

内存结构内存图像

ES5:不要直接操作隐式原型

原型链

访问对象属性时,查找顺序:

  • List item
  • 自身属性,找到返回

原型继承

构造函数的实例对象自动拥有构造函数原型对象的属性(方法)

  • 函数的显示原型指向的对象默认是空object实例对象:默认是空的object实例对象
    所有函数都是Function的实例,Function也是其自身的实例 Object的原型对象是原型链的尽头

1.读取对象的属性值的时候会自动到原型链中查找
2.设置对象的属性值时,不会查找原型链,如果当时对象中没有此属性,直接添加此属性并设置其值
3.方法一般定义在原型中,属性一般通过构造函数定义在对象本身上

instanceof(判断左边对象是不是右边对象的实例)

  • 表达式:A instanceof B

    如果B的显示原型对象在A的原型链上,则返回true,否则返回false

实例对象的隐式原型是构造函数的显示原型
原型知识点面试题目
面试题目 f.b() 不能执行
Object()是Function()的实例
所有函数都是Function()的实例,包括其本身
函数的显示原型指向的对象默认是空的Object实例对象,但是object不满足
object.prototype._ proto _ //null

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值