6.2 原型和实例的检测及继承
Posted xiaokeai233
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了6.2 原型和实例的检测及继承相关的知识,希望对你有一定的参考价值。
# 一、闭包的应用场景
1. 事件委托的封装
2. 循环中的事件内使用循环每次的计数器
3. 计时器的回调函数传参
4. 模块化开发
5. ......
1. 事件委托的封装
2. 循环中的事件内使用循环每次的计数器
3. 计时器的回调函数传参
4. 模块化开发
5. ......
# 二、原型
1. 实例和构造函数(类)的关系
- 实例是类的具象化,由new关键字执行类之后得到的对象
- 类是实例的抽象化,将多个具有共同特点的对象的特点抽象成规范,这个规范叫类(构造函数)
- 实例 被 类 创造
1. 实例和构造函数(类)的关系
- 实例是类的具象化,由new关键字执行类之后得到的对象
- 类是实例的抽象化,将多个具有共同特点的对象的特点抽象成规范,这个规范叫类(构造函数)
- 实例 被 类 创造
2. 实例对象
- 其实可以作为普通对象看待,普通对象也有以下特点
- 内部会自带一个属性:`__proto__`,这个属性是个对象类型,用来指向创建自身的类,身上的`prototype`属性
- `__proto__`也被称为隐式原型
- 其实可以作为普通对象看待,普通对象也有以下特点
- 内部会自带一个属性:`__proto__`,这个属性是个对象类型,用来指向创建自身的类,身上的`prototype`属性
- `__proto__`也被称为隐式原型
3. 可被构造的函数(类)
- 每个可被new执行的函数(类),身上都会有一个属性:`prototype`,这个属性是个对象类型,用来**被**将来new执行创建出来的实例身上的隐式原型`__proto__`指向
- `prototype`也被称为显示原型
- 在`prototype`这个属性内,又有一个属性:`constructor`,用来指向当前`prototype`所属的函数
- 每个可被new执行的函数(类),身上都会有一个属性:`prototype`,这个属性是个对象类型,用来**被**将来new执行创建出来的实例身上的隐式原型`__proto__`指向
- `prototype`也被称为显示原型
- 在`prototype`这个属性内,又有一个属性:`constructor`,用来指向当前`prototype`所属的函数
4. 对象的属性的读写规则
- 向上查找,就近原则
- 当使用对象某个属性时,会先在对象自身查找,如果有就使用,如果没有,会顺着隐式原型,继续查找,如果找到,使用,同时停止,如果还没,继续查找...直到顶层原型,还找不到,抛出undefined
- 向上查找,就近原则
- 当使用对象某个属性时,会先在对象自身查找,如果有就使用,如果没有,会顺着隐式原型,继续查找,如果找到,使用,同时停止,如果还没,继续查找...直到顶层原型,还找不到,抛出undefined
- 通过实例,查找某个属性,自身没有,其实就是找自身构造函数的`prototype`
- 如果给构造函数的`prototype`添加属性或方法,意味着,将来的实例,也可以使用
6. 课外阅读
- https://www.jianshu.com/p/a6f26c3756fe
- https://www.jianshu.com/p/82b293043b2a
- https://www.jianshu.com/p/a6f26c3756fe
- https://www.jianshu.com/p/82b293043b2a
7. 构造函数和实例之间关系的检测
- 可以检测简介联系
- `console.log( Object.prototype.isPrototypeOf(实例) );`
- `console.log( 实例 instanceof Object );`
- 可以检测简介联系
- `console.log( Object.prototype.isPrototypeOf(实例) );`
- `console.log( 实例 instanceof Object );`
# 三、继承
1. 概念
- 让一个原本没有某个功能的对象(类),使用另一个对象(类)的功能
- 使用权限 的 授权
1. 概念
- 让一个原本没有某个功能的对象(类),使用另一个对象(类)的功能
- 使用权限 的 授权
2. 面向对象中的继承
- 构造函数的原型 和 实例之间的关系
- 继承关系
- 构造函数的原型 和 实例之间的关系
- 继承关系
3. 构造函数(类)与构造函数(类)之间的继承
- 改变this指向继承
- 原型继承
-
-
-
-
- 混合继承
- ES6的class继承
- 改变this指向继承
- 原型继承
-
-
-
-
- 混合继承
- ES6的class继承
4. 继承的应用场景:
- 当有多个类,具有相同特点时,可以将共同点,抽象出一个公共类
- 具体的类,先从公共类的身上继承得到公共方法或属性,再自定义添加当前类的方法或属性
- 当有多个类,具有相同特点时,可以将共同点,抽象出一个公共类
- 具体的类,先从公共类的身上继承得到公共方法或属性,再自定义添加当前类的方法或属性
以上是关于6.2 原型和实例的检测及继承的主要内容,如果未能解决你的问题,请参考以下文章
instanceof运算符的实质:Java继承链与JavaScript原型链