ES6中的类和对象
类 抽象了对象的公共部分,它泛指某一大类
对象 特指某一个,通过实例化一个具体得对象
创建类
//1. 创建类 class 创建一个 明星类
var that;
class Star{
//类的共有属性放到 constructor 里面
constructor(uname){
//constructor 里面this 指向的是 ldh
that = this;
this.uname = uname;
this.btn = document.querySelector('button');
this.btn.onclick = this.sing;
}
//类里面所有函数不需要写function
//多个函数方法之间不需要添加逗号分隔
sing(){
//sing 里面的this 指向的是 btn
console.log(this.uname); //undefined
console.log(that.uname); //刘德华
}
}
//2. 利用类创建对象 new
var ldh = new Star('刘德华');
类constructor构造函数
constructor()
方法是类的构造函数(默认方法),用于传递参数,返回实例对象,通过new命令生成对象实例时,自动调用该方法。如果没有显示定义,类内部会自动给我们创建一个constructor()
注意
- 在ES6中类没有变量提升,所以必须先定义类,才能通过类实例化对象
- 类里面的共有属性和方法一定要加this使用
- 类里面this 的指向问题
- constructor 里面的this指向实例对象,方法里面的this指向这个方法的调用者
类的继承
继承 extends
super关键字 用于访问和调用对象父类上的函数,可以调用父类的构造函数,也可以调用父类的普通函数。
class Father{
constructor(x, y){
this.x = x;
this.y = y;
}
sum(){
console.log(this.x + this.y);
}
}
class Son extends Father{
constructor(x, y){
//利用super 调用父类的构造函数
//super 必须在子类this 之前掉用
super(x, y);
this.x = x;
this.y = y;
}
subtract(){
console.log(this.x - this.y);
}
}
var son = new Son(5, 3);
son.sum();
son.subtract();
继承中的属性或方法查找原则:就近原则
面向对象的案例
来源:CSDN
作者:雪急飞绪
链接:https://blog.csdn.net/qq_38689395/article/details/104064163