ES6中的类

70 阅读1分钟
  • 在ES6中,可以通过class关键字定义类。但class的本质还是function

  • 可以将类看作一个语法糖,让对象原型的写法更加清晰、更像面向对象编程的语法。

  • 类不可以重复定义,也不可以提升

  • 类的声明方式有两种:命名类,匿名类

//声明类
class c1{
  constructor(){}
}
//匿名类
let c2=class{}
console.log(c1)
console.log(c2)

image.png

关于类内部的写法

class Person{		
constructor(a,b,c){
this.b=b//给实例对象添加属性
 this.fn=function(){}//给实例对象添加方法
}
life=50//给实例对象添加属性
say1(){console.log(111,this.x)}//对象的原型对象的方法
//类的静态属性:给Person类添加静态属性
static life=200
//类的静态方法:给Person类添加静态方法
	static say2(){
	console.log(222)					
}
	}
    let p=new Person(11,22,33)
    console.log(p)

image.png

总结:Person类的内部可以写一个constructor方法 用这个类创建对象时 就会运行这个构造函数constructor 不写构造函数 系统会默认有一个空的构造函数运行constructor(){}
蓝色的(用static添加属性)是加给Person类的属性,用Person类创建的对象用不了,而黄色是加给Person类创建的对象上,对象可直接使用。而绿色是添加到Person类的原型上,创建的对象也可以访问