class、static和异常处理--JavaScript
2021/9/14 17:07:41
本文主要是介绍class、static和异常处理--JavaScript,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
class、static和异常处理
Class类:
ES6引进了class的概念,作为对象的模板,可以使用关键字class来定义类。
使用class定义类,不需要添加function关键词,如下定义一个名为Person的类,直接使用class Person
;
在Person类中创建一个work方法,直接使用work(){}
。
class Person{ constructor(name,age){ this.name=name; this.age=age; } work(){ console.log('Person 工作~~') } } class Student extends Person{ constructor(name,age,major){ //调用父类的构造函数,并传参 super(name,age); this.major=major; } //子类重写(覆盖)了父类函数:父类函数内容太广泛太笼统,不具体,并不能完成体现子类的特点 work(){ //用super.xxx 可以获取父类的成员 super.work(); console.log("学生的工作就是学习") } } var s = new Student("jack",30,'Web'); console.log(s); s.work();
创建一个Student类继承Person类,需要使用extends关键词。子类可以使用super来获取父类的成员。
子类中如果创建和父类同名的方法,会覆盖父类的方法。
static
被static修饰的成员,不是通过对象调用的,而是通过类名调用。
被static修饰的成员归属类,而不是对象。
被static修饰的成员是在创建类的时候一起创建的。
平时用过的静态成员大多数都是工具函数。
class Person{ constructor(name,age){ this.name=name; this.age=age; } } class Student extends Person{ constructor(name,age,major){ super(name,age); this.major=major; } //静态成员 static role='kid' static getMyName(){ console.log('getMyName : ' + this.name);//返回当前类名:Student } } var s = new Student("jack",30,'Web'); //通过类名调用静态函数 Student.getMyName(); //常用的静态函数 console.log(Date.now());
私有成员
私有成员的访问范围仅限于class大括号内,需要在名称前加#
,私有属性必须在constructor之前定义一下。
class Animal{ //私有成员在constructor之前定义一下; #b; constructor(a,b){ this.a=a; //使用私有成员 this.#b=b; } run(){ console.log("this.#b : " + this.#b) } #stop(){ console.log("stop") } } var x = new Animal("123","456") console.log(x.a) x.run(); x.stop();//x.play is not a function
不能在最后使用实例调用stop函数。只能在class中使用。
异常处理
try{}catch(){}
try { //在此运行可能会出错误的代码 } catch(err) { err;可以获得出错的信息 //在此处理错误 }
主动抛出异常
function play(){ throw "当前函数不可用" }
这篇关于class、static和异常处理--JavaScript的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-01为什么公共事业机构会偏爱 TiDB :TiDB 数据库在某省妇幼健康管理系统的应用
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署