此博客只供自己学习记录使用

1.继承中,如果实例化子类输出一个方法,先看子类有没有这个方法,如果有就先执行子类的

2.继承中,如果子类里面没有,就去查找父类有没有这个方法,如果有,就执行父类的这个方法(就近原则)

class变量 javascript js class类如何调用_子类

 

 

 3.super关键字(利用super调用父类的构造函数)

class变量 javascript js class类如何调用_原型对象_02

 

 

 子类在构造函数中使用super,必须放到this前面(必须先调用父类的构造方法,再使用子类构造方法)

class变量 javascript js class类如何调用_class变量 javascript_03

 

 

 使用class类的两个注意点

1.es6中类没有变量提升,所以必须先定义类,才能通过类实例化对象

2.类里面的共有的属性和方法一定要加this使用

3.类里面的this指向问题:constructor里面的this指向实例对象,方法里面的this指向这个方法的调用者

class变量 javascript js class类如何调用_子类_04

 

 

 

class变量 javascript js class类如何调用_原型对象_05

 

 

 构造函数和原型

new在执行时会做四件事情

1.在内存中创建一个新的空对象

2.让this指向这个新的对象

3.执行构造函数里面的代码,给这个新对象添加属性和方法

4.返回这个新对象(所以构造函数里面不需要return)

class变量 javascript js class类如何调用_构造函数_06

 

 

 在构造函数中添加一些成员,可以在构造函数本身上添加,也可以在构造函数内部的this上添加,两种方式添加的成员,分别成为静态成员和实例成员

静态成员:在构造函数身上添加的成员叫做静态成员,只能通过构造函数本身来访问

实例成员:在构造函数内部创建的对象成员称为实例成员,只能由实例化的对象来访问,实例成员就是构造函数内部通过this添加的成员

class变量 javascript js class类如何调用_子类_07

 

 

 

class变量 javascript js class类如何调用_原型对象_08

 

 

  构造函数的问题,存在浪费内存的问题,prototype就可以解决这个问题

class变量 javascript js class类如何调用_原型对象_09

 

 一般情况下,公共属性定义到构造函数里面,公共方法放到原型对象身上

class变量 javascript js class类如何调用_构造函数_10

 

 

class变量 javascript js class类如何调用_构造函数_11

 

 对象原型 __proto__

class变量 javascript js class类如何调用_子类_12

 

 

class变量 javascript js class类如何调用_构造函数_13

 

 constructor  构造函数

此时遇到一个问题,如果要在构造函数的原型对象上添加十几种方法,此时要定义一个对象 Star.prototype = { 里面存放多个方法},但是遇到一个问题,就是里面没有了constructor,原因是重新给Star.prototype赋值了{},导致constructor不见,这个时候可以在对象里面添加constructor:Star重新指向构造函数

class变量 javascript js class类如何调用_class变量 javascript_14

 

 构造函数 实例对象和原型对象 三角关系

class变量 javascript js class类如何调用_构造函数_15

 

 原型链讲解

class变量 javascript js class类如何调用_原型对象_16

 

 原型对象this指向问题

class变量 javascript js class类如何调用_构造函数_17

 

 利用原型对象prototype扩展内置对象方法

class变量 javascript js class类如何调用_构造函数_18

 js利用父构造函数继承属性组合继承(这个只是继承了属性)

class变量 javascript js class类如何调用_构造函数_19

 

 js利用原型对象继承方法 

class变量 javascript js class类如何调用_原型对象_20

 

 

class变量 javascript js class类如何调用_原型对象_21

 

 js类 class的本质是函数

class变量 javascript js class类如何调用_子类_22

 

 

class变量 javascript js class类如何调用_构造函数_23

 

ES5中的新增方法

class变量 javascript js class类如何调用_构造函数_24

 

 filter()方法

class变量 javascript js class类如何调用_构造函数_25

 

 

class变量 javascript js class类如何调用_构造函数_26

 

 数组some

class变量 javascript js class类如何调用_原型对象_27

class变量 javascript js class类如何调用_class变量 javascript_28