类声明和函数声明的区别和特点
1、函数声明可以被提升,类声明不能提升(与let声明类似)。
2、类声明中的代码自动强行运行在严格模式下。
3、类中的所有方法都是不可枚举(不可循环)的,而自定义类型中,可以通过Object.defineProperty()手工指定不可枚举属性。
4、每个类都有一个[[construct]]
的方法。
5、只能使用new来调用类的构造函数。
6、不能在类中修改类名。
摘抄:https://mp.weixin.qq.com/s
定义在类中的方法会被写在原型上
constructor
其中 constructor
方法是类的构造函数,是一个默认方法,通过 new 命令创建对象实例时,自动调用该方法。一个类必须有 constructor
方法,如果没有显式定义,一个默认的 consructor
方法会被默认添加。所以即使你没有添加构造函数,也是会有一个默认的构造函数的。一般 constructor
方法返回实例对象 this
,但是也可以指定 constructor
方法返回一个全新的对象,让返回的实例对象不是该类的实例。
摘抄:https://juejin.cn/post/6844903638674980872
参数
接收创建实例的时候传过来的参数
<script>
class a {
constructor(name, age) {
this.name = name
this.age = age
}
names() {
console.log("我是name");
}
}
const newa = new a("你好", "12")
console.log(newa.name);//你好
console.log(newa.age);//12
</script>
super
super
要写在constructor
中,并且如果要在constructor
中写属性必须在super后面
一般继承的时候需要调用super
,super
可以给父类传递参数
super ()
相当于 父类.prototype.constructor.call (this)