主要是前面知识的补充,构造函数和原型 -- 暑假Day5

构造函数和原型

在es6之前是用构造函数和原型来实现类的功能

把共有属性放在构造函数里面,然后通过创建不同的对象来使用相同的功能

构造函数里面的属性和方法被称之为成员,成员可以添加

实例成员:构造函数内部通过this添加的成员,只能通过实例化的对象来访问,不能通过构造函数来访问
静态成员:在构造函数上面直接添加的属性(不是通过this添加的),只能通过构造函数来访问

构造函数存在浪费内存的缺陷
为了避免这种因为方法的重复而导致的内存浪费,建议把共同方法直接放在原型对象里面

实例对象的__proto__方法和构造函数的prototype对象是同一个对象

constructor的内容是实例对象是由哪个构造函数new出来的
修改原型对象的时候如果是给原型对象进行了赋值,那必须手动的利用constructor指回原来的构造函数,否则原型对象就只有被赋值的方法

在这里插入图片描述

对象实例由__proto__指向构造函数的原型对象,构造函数的原型对象里面的constructor指向构造函数

不管是构造函数还是原型对象,this都指向实例对象

当把方法放在父原型对象上面的时候,要让子原型对象同样继承且在改变子原型对象里面的内容的时候不改变父原型对象,不能直接将父原型对象赋值给子原型对象,因为如果直接赋值就会造成两个原型对象同时指向一个地址的情况,于是此刻的做法是错误的
正确的写法是:将新new的父对象赋值给子原型对象,将constructor重新指回子对象的构造函数
在这里插入图片描述

类的本质

其实类的本质还是一个函数,也可以认为是构造函数的另一种写法

其实就是一种语法糖

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值