🎆继承
2019-2-20
| 2022-9-1
0  |  0 分钟
type
status
date
slug
summary
tags
category
icon
password
URL
Sep 1, 2022 09:23 AM
继承让子类可以直接使用父类的方法和属性,同时子类也可以添加自己的方法
子类使用方法或属性时,会先在自己里面找,如果找不到则一层一层向上找,如果到达最上层时还没找到,则会报错
 
原型继承
为子类对象添加原型方法时,必须先实现继承关系,父类派生给子类的属性是无法在子类对象构造时初始化的,一旦实现了继承关系,则子类原型对象的值就不能再修改了
call&apply继承
可以初始化父类派生给子类的属性,但不能继承父类原型对象的属性和方法
混合继承
可以通过call & apply继承父类派生的属性和方法,再通过原型继承来继承父类的原型属性和方法
 
实例化对象
实例化对象如何访问所有属性(自身的属性和原型上的方法或者属性)
每个实例化对象都可以直接访问自己添加的自定义属性
每个实例化对象还有一个_proto__proto_指向该类的原型对象prototype
实例对象通过prototype去访问原型对象上的属性或者方法
 
notion image
 
 
深拷贝和浅拷贝
深拷贝为变量开辟堆内存空间,一般为先创建构造函数,然后使用for循环或slice等将原数据插入进去
浅拷贝为只给新变量在栈空间添加一个原数据的引用地址,使用时新老变量同时使用一个数据,某一个更改数据后,另一个的数据也会改变
 
 
ES6继承
类似于java使用extendssuper来继承父类
普通方法和构造方法的区别
  1. 构造方法必须通过new来调用
  1. 构造方法名子习惯首字母大写
  1. 构造方法没有返回值
 
学习思考
  • javascript
  • 事件二回调函数
    • Valine
    • Cusdis
    目录