ES6中引入了class关键字,用于声明一个类
1. class声明的类可以直接当做构造函数通过new来调用,返回该类的实例
2. 当该类被调用时,会自动执行内部的constructor构造器函数,构造器函数中的this指向实例对象,如果一个类中没有显示的定义constructor函数,则会默认添加一个空的constructor
class Demo{
constructor(name,hobby){
this.name = name
this.hobby = hobby
}
//方式一:直接声明的方式,会在原型上添加该方法,方法内部this指向实例对象
getName(){
return this.name
}
//方式二:给实例对象扩展方法,而不是原型对象,this指向实例对象
getHobby = function(){
console.log(this.hobby)
}
//方式三:给demo类添加静态属性,只能通过demo来获取该属性
static hello = 'world'
//给实例对象设置属性,和在构造器函数中设置实例属性一样,缺点是不能和constructor一样传递参数
age = 22
}
//demo.prototype.getName添加方法的方式等同于方式一
const obj = new Demo('jack','篮球')
obj.getName()//jack
obj.getHobby()//篮球
obj.age//22
Demo.hello = 'world'