JS 面向对象
创建类
语法:class 类名 {属性和方法} 构造函数的语法糖 首字母需要大写
抽取公共属性和方法 创建一个类
new把函数变成了一个对象 Star就是一个函数
构造函数
属性:放到constructor 构造函数里面 类里面不需要写function关键字
属性和方法放到类里面 需要用到constructor 构造器
构造函数的主要作用:接收一个参数 返回实例对象 new的时候主动执行 放一些公共属性
类添加方法
创建一个类 里面有公共属性和方法 公共属性写在constructor里面 方法写在后面 方法之间不用逗号隔开
类中的公共属性 调用方法 都需要用到this
类的继承
子类继承父类需要用到textends关键字继承父类 继承父类的属性和方法需要使用super关键字
当子类中的属性和父类一样时 可以不写constructor构造属性 直接调用父类的即可
当子类中没有construcotr时 可以随意使用父类的 如果子类也有 constructor会返回实例 this指向不同 不可以在使用父类的东西
在子类构造函数中使用super 必须放在this前面 如果子类也有相同的属性 会优先指向子类 就近原则
super 调用父类的属性和方法 查找方法和属性为就近原则
在es6中没有变量提升 需要创建类 通过类实例化对象
在类中的公共属性和方法需要添加this使用
this的指向问题
constroutor里面的this指向实例对象 方法里面的this 指向这个方法的调用者
类和对象
类泛指
对象:类里面的具体实例 创建类:class类名{} new类名 构造函数:属性和方法 继承:extends, super this:在构造函数中 指向实例对象 在方法里面就是指向调用者
this:当前对象 构造函数:实例对象 类里面的方法:调用者