es6中为了更好地把js设计成面向对象的语言的语法特征
//声明类
class Person {
}
var p1 = new Person()
console.log(p1);
//类名首写字母 需要大写
//匿名类
var fn=class Person{
}
var f1=new fn()
console.log(f1);
js没有类 是原型的思想设计的类, 但是学习和使用这个技术时,要用类的思想去学习
类的本质是函数,但是不能把它当成函数看待
person类的内部可以写一个constructor方法 用这个类创建对象时 就会运行构造函数
不写构造函数 系统会没骗人有一个空的构造空间
class Person{
constructor(a,b){
console.log(99);
this.x=a
this.b=b
}
say2(){
console.log(222); //say()函数与constructor函数同层级,也会成为p1原型链的一部分
}
//静态属性和方法 对于新创建的对象时访问不到的
static lite=200
static say(){
console.log(11)
}
var p1=new Person(10,29)
console.log(p1);// Person{a=10,b=29}
p1.say2() //222
class Student extends Person{
constructor(name){
super(name)//让person类的构造函数的逻辑去帮我们构建对象空间
this.age = 20
this.book = '书名'
}
}