类的写法
{
// ES6面向对象:
// 类的写法:
class Person{//typeof function类型
age = 20;//属性也可以这样写 -> 这是公有属性,外内都可以调用;
#hei = "178cm";//私有属性
constructor(name){//-> function Person(name){}
this.name = name;
}
fn(){// -> Person.prototype.fn = function(){}
console.log("hello")
}
getAge(){
console.log(this.age);
}
getHei(){
console.log(this.#hei);
}
}
let zhangsan = new Person("张三");
console.log(zhangsan);
zhangsan.getAge();//20
zhangsan.getHei();//178cm 注意用法
console.log(zhangsan.hei);//undefined
}
静态属性和静态方法
{
class Person{
static age = 10;//静态属性->1.属于类的属性;2.不需要实例化就可以调用
static foo(){//静态方法
console.log("foo")
}
constructor(name){
this.name = name;
}
}
console.log(Person.age);
Person.foo();
}
继承
{
// 继承
class Dad{
constructor(height){
this.height = height;
}
foo(){
console.log("foo");
}
setStyle(){
console.log("父类一些逻辑")
}
}
class Son extends Dad{//extends关键字
constructor(height){
super(height);//==调用了父类的构造函数-> 这里把构造函数和原型都进行继承过来了!
// 注意参数传递
}
setStyle(){//可以 扩展逻辑 使用 super.父类();
super.setStyle();//调用父类函数
console.log("子类一些逻辑");
}
}
let zhangsan = new Son("178cm");
console.log(zhangsan);
zhangsan.setStyle();
}