es6之class类的理解

本文介绍了ES6中的Class语法,包括构造函数、静态方法和继承等内容。通过实例展示了如何使用Class关键字定义类,并解释了super关键字在子类构造函数中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

传统的javascript语言中,没有类的概念,生成示例对象是先定义一个构造函数,然后通过new操作符来完成。下面是一个列子。
在这里插入图片描述
这种写法与传统的面向对象语言(c++ java)差异很大,对于刚学习这门语言的程序员来说,可能会感到困惑。因此,es6引入了class类这个概念,作为对象的模板,通过class关键字就可以定义类。
1、构造函数实例
在这里插入图片描述
注意:class定义类的时候,不需要写function,并且里面的函数不许用简写形式,即:showName(){}不能写成function:showName(){},另外,方法之间不需要用逗号分隔,加了会报错。
在这里插入图片描述
可以看出showName在对象的原型上面,事实上,类的所有方法都定义在类的原型上面。好处是每生成一个实例对象都可以使用、showName
2、静态方法
类相当于是实例的原型,所有在类中定义的方法,都会被实例继承。如果在一个方法前,加上static关键字,就表示该方法不会被实例继承,而是直接通过类来调用,这就称为“静态方法”。
在这里插入图片描述
该代码中,Person类的myMethod方法前有static关键字,表明该方法是一个静态方法,可以直接在Person类上调用,而不是在其实例上调用,在实例上面调用会报错。
注意:如果静态方法包含this关键字,这个this指向是类,而不是实例。静态方法可以与费静态方法重名,子类可以继承父类的静态方法。
3、继承
在这里插入图片描述
super关键字
1、super作为函数使用
super作为函数调用时,代表父类的构造函数。es6要求,子类的构造函数必须执行一次super函数。并且,作为函数时,super()只能用在子类的构造函数中,用在其他地方就会报错。
2、super作为对象使用
在普通方法中,指向父类的原型对象(因此,定义在父类实例上的方法或属性,是无法通过super调用的),在静态方法中,指向父类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值