ES6新增class类以及继承相关知识


在ES6当中,我们不再使用ES5的类,像寄生组合式这种的,因为很麻烦,代码量大且不容易理解,在开发中我们更倾向于使用ES6新增的class类,尤其是当你编写TS代码时。


一、class类是什么?

简单的来说,其实ES6的class类就是一个语法糖,我们完全可以把它看成ES5类的另一种表达形式。但是当我们用这种形式去表达的时候,我们会发现这样更清晰且更具有面向对象的感觉。
而且对于学过Java,C++等面向对象语言的人来说也更好上手,因为很像。

class People {
	...
}

二、class类的构造函数

在class类中有且仅有一个constructor函数作为构造函数,一般情况下类的属性要在这个函数里。
例如:这里创建一个People类,有属性name,age。

class People {
	constuctor(name, age){
		this.name = name;
		this.age = age;
	}
}

三、class类中的方法

在class类中所有方法都直接写在类里面。
例如:还是上边那个People类,我们给它加一个方法

class People {
	constuctor(name, age){
		this.name = name;
		this.age = age;
	}
	talking(){
		console.log("hahaha");
	}
}

这里我们用new创建一个实例对象

const people = new People('zs', 18);
people.talking(); //hahaha

运行之后我们就会看到控制台输出hahaha


四、static静态方法

静态方法不可用实例对象调用,只能用类名调用
例如:上边的People类,加一个静态方法

class People {
	constuctor(name, age){
		this.name = name;
		this.age = age;
	}
	talking(){
		console.log("hahaha");
	}
	static sayHello(){
		console.log('hello');
	}
}
const people = new People('zs', 18);
people.sayHello();//报错
People.sayHello(); //hello

五、class类继承

class类继承使用关键字extends。

class student extends People {
    constructor(name, age, major){
        super(name, age);
        this.major = major;
    }
}

这里的super作用是继承People类的属性,而方法自动继承下来了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值