本文介绍: ES6提供了更接近传统语言的写法,引入了Class类这个概念,作为对象的模板。通过Class关键字,可以定义类,基本上,ES6的class可以看作只是一个语法糖,它的绝大部分功能,ES5都可以做到,新的class写法只是让对象原型的写法更加清晰、更面向对象编程的语法而已。
ES6提供了更接近传统语言的写法,引入了Class类这个概念,作为对象的模板。通过Class关键字,可以定义类,基本上,ES6的class可以看作只是一个语法糖,它的绝大部分功能,ES5都可以做到,新的class写法只是让对象原型的写法更加清晰、更面向对象编程的语法而已。
一、class类的基本用法
基本语法: class 类名 { constructor{ } }
class Student {
// 构造方法 名字不能修改
constructor(name,age) {
this.name = name
this.age = age
}
// 添加方法
// 方法必须使用该语法
fun() {
console.log("我是学生")
}
}
let zs = new Student("张三",18)
console.log(zs)
二、class类静态成员
static
class Student {
// 静态属性
static name = "张三"
static fun() {
console.log("我是学生")
}
}
let zs = new Student()
console.log(zs.name) //undefined
console.log(Student.name) //张三
为什么我们zs.name打印undefined呢?
因为static属性方法只属于类,不属于实例对象
三、class类继承
class Student {
// 构造方法 名字不能修改
constructor(name, age) {
this.name = name
this.age = age
}
// 添加方法
// 方法必须使用该语法
fun() {
console.log("我是学生")
}
}
// 类继承必须要写extends
class Student1 extends Student {
// 构造方法
constructor(name,age,id,tel){
// super
super(name,age) //Student.call(this,name,age)
this.id = id
this.tel = tel
}
learn() {
console.log("学习")
}
}
let zs = new Student1("张三",18,10,123456)
console.log(zs)
四、class中的getter与setter
class Student {
get name(){
console.log("姓名被读取了");
// 需要有返回值 要不然直接 .上name会输出undefined
return "hihi"
}
// set 中需要有参数
set name(value){
console.log("姓名被修改了");
}
}
let s = new Student()
console.log(s.name);
s.name = "say"
原文地址:https://blog.csdn.net/m0_74577714/article/details/134600111
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_1635.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。