}
上述代码中:
-
子类通过 extends 关键字来继承父类的所有属性和方法
-
子类必须在constructor中调用super方法,否则新建实例会报错;
ES5的继承中,实质是先创造子类的实例对象this,然后再将父类的方法/属性添加到this上面。
ES6的继承中,实质是先创造父类的实例对象this, 然后再将子类的方法/属性添加上
必须先通过父类的构造函数完成塑造(this对象–实例对 《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】 象),然后再对其加工,加上子类自身的属性和方法。
如果不调用super方法,子类就得不到this对象
[](()静态方法
==============================================================
-
有 static关键字,表明该方法是一个静态方法
-
需要通过类名来调用, 而不是在实例(this)上调用
-
如果使用this调用,或者在该方法中使用this。 均会出现异常
-
静态方法可以和非静态方法重名 (不推荐这样)
-
父类的静态方法,可以被子类继承
代码示例:
{
class Person{
//实例属性的新写法, 位置放在类的顶部
num = “我是实例属性的新写法”;
// 静 态 属 性
// 写法: 在实例属性前, 加static关键字
static Admin = “开机密码”;
constructor(name,age){
this.name = name;
this.age = age;
}
static MiMa = “1906”
static shuo(){
console.log(“保密保密”)
}
talk(){
return ${this.num}
}
}
Person.shuo();//保密保密
console.log(Person.MiMa);
// let person = new Person(“光达”,18)
// person.shuo(); //person.shuo is not a function
// console.log(person.MiMa); //undefined
// console.log(person.talk()); // 我是实例属性的新写法
}