1.1创建类
语法格式:
class name {
//class body
}
实例化:
var xxx=new name()
//注意:必须使用new实例化对象
例:
//创建一个class,此处创作一个 学校 类
class School {
}
//实例化这个类
new School()
1.2.类constructor构造函数
定义:constructor()方法是类的构造函数(默认方法),作用是传递参数,返回实例对象,通过new命令生成实例对象时,自动调用此方法,如果没有显示定义,类内部会自动创建一个constructor()
例:
接着上一个定义的 学校 类
//创建clas类
class School {
constructor(sname){//sname参数名称
this.sname=sname
}
}
//实例化对象
var beida=new School('北京大学')
console.log(beida.sname)
解析:首先我们创建一个类,然后这个类里面有一个构造函数constructor(),这个函数能够接收我们传递的参数,并且能够把这个实例返回回来给beida,不需要return返回,也就是当创建实例的时候加上了new,它就会自动调用constructor()这个函数并且执行,然后把‘北京大学’传递给sname,接着执行下一步sname赋值给this,sname,而this指向的就是创建的实例beida,这样这个实例对象beida就有sname这个属性了。
class School {
//类的共有属性放在constructor里面
constructor(sname,special){
this.sname=sname //this指向创建的实列
this.special=special
}
}
//创建实例
var beida=new School('北京大学','中文系')
var qinghua=new School('清华大学','英语系')
console.log(beida)
console.log(qinghua)
解析:这次又添加一个属性special,并且查看的是实例化对象是否含有整一个类的属性。
1.3类添加方法
语法:
class name {
constructor(){ //constructor构造器或者构造函数
this.sname=sname
this.speial=special
}
say(){
console.log(this.sname+'我来了'
}
}
例:
接着上一个例子添加teach的方法
class School {
//类的共有属性放在constructor里面
constructor(sname,special){
this.sname=sname
this.special=special//this指向创建的实列
}
//创建一个teach方法
teach(){
console.log('我在学习')
}
}
//创建实例
var beida=new School('北京大学','中文系')
var qinghua=new School('清华大学','英语系')
console.log(beida)
console.log(qinghua)
beida.teach()//调用方法
qinghua.teach()
语法规定注意:(1)es6类里面所有的函数不需要些function
(2)多个函数方法之间不需要添加逗号分隔
接着上面例子,写一个有参数的方法
class School {
//类的共有属性放在constructor里面
constructor(sname,special){
this.sname=sname
this.special=special//this指向创建的实列
}
//创建一个teach方法
teach(){
//console.log('我在学习')
console.log('我在'+this.sname+'学习'+subject)
}
}
//创建实例
var beida=new School('北京大学','中文系')
var qinghua=new School('清华大学','英语系')
console.log(beida)
console.log(qinghua)
beida.teach('语文')//调用方法
qinghua.teach('英语')
subject接收到参数值后这个teach方法输出的就是‘我在北京大学学习语文’,‘我在清华大学学习英语’。