一、类的编译
1、类只能通过new 去调用
class child {
//关于类的定义我们往往借助于构造器constructor
constructor(){
this.name = "东方树叶"
this.age = 19//这里往往是私有属性
};
static a(){
return 1;//注意这个是类上的方法需要child自己直接去调
};
eat(){
console.log("东方树叶真难喝啊!!");
}//原型上的方法
}
let childOne = new child();
console.log(child.a());
2、关于类上面的儿子继承爸爸
class parent{
constructor (){
this.sex = "男";
};
static b (){
return 2;//这个是类本身上的
};
smoking(){
console.log('耐心不足,请充值!!');//这个是原型上的方法
}
}
class child extends parent { //继承父亲的私有和公有
//关于类的定义我们往往借助于构造器constructor
constructor(){
super();//parent.call(this);
this.name = "东方树叶"
this.age = 19//这里往往是私有属性
};
static a(){
return 1;//注意这个是类上的方法需要child自己直接去调
};
eat(){
console.log("东方树叶真难喝啊!!");
}//原型上的方法
}
let childOne = new child();
console.log(child.b());
备注:静态方法一定属于类的,而不是实例的。
类可以继承私有公有还有静态方法。
3、实现类的调用检测
function _classcallcheck(instance,constructor){
if(!(instance instanceof constructor)){
throw new Error("这玩意不是那个实例呢!") //抛出一个异常
}
};//类的调用检测,看是不是new出来的
let a = function(){
function p(){
_classcallcheck(this,p)//看看p是不是当前的实例
}
return p;
}();
let aa = new aa();
。。。。。这傻吊写类怎么实现的这个就不展示了,因为压根没听懂。