// ES6 中的类方法写法 class Biii { constructor() { console.log("我是ES6中类的构造函数") } static jingtai() { console.log("ES6 静态方法被调用") } oko() { console.log("ES6 动态方法被调用") } } var b = new Biii() b.oko() //这个是调用的是动态方法 实例化对象.方法名() Biii.jingtai() //这调用的是静态方法 类名.方法名() ////////////////////////////////////// // ES5中类的写法 function Booo() { this.name = 88 this.nn = function () { console.log("ES5中方法的写法") } } Booo.yu = function () { console.log("ES5中直接给类添加方法5555") } var h = new Booo() console.log(h.name) h.nn() //调用的是原型的上的方法 Booo.yu() //调用的是类型的方法
ES6中继承的理解
class Box { constructor() { // this.a = 5; } play() { this.a++; // console.log(this.a); } die() { this.a--; // console.log(this.a); } }
class Ball extends Box { //这里表示Ball继承了 Box ,extend是继承的意思
constructor() { //constructor 初始化,的时候执行super() 父类执行,
super();//调用父类的构造函数(富:知道类的顺序:子类-超类-父类-基类)
this.b = 3;
}
// 覆盖超类的方法
// override(这个是专业单单词)
die() {
this.a -= 2;
}
play() {
// 执行超类的play方法
super.play();//执行 ,就是说调用父类的方法
this.a++;
}
fire() {
this.b = 0;
console.log(this.b);
}
}
var c = new Ball();
// c.play();
// c.play();
// c.play();
// c.die();
// console.log(c.a);
c.play();
console.log(c.a);
总结:
extends 来实现继承
super()来实例父类的方法和属性
super.play() 来调用父类的方法