ES6中类的 实例属性、实例方法、静态属性、静态方法总结
ES6出现了class的概念,其实和其他语言中的class的使用方法大同小异,这里简单总结以下js中相关的使用方法。
实例属性和方法
- 直接写在类中,挂载在this对象上;
- 只能通过设置get和set方法拿到,不然是默认的private 从外界无法获取也无法修改;
- 在外界只能创建实例后,通过实例取到。
// 定义
class TestClass extends Test {
constructor(props = {}) {
super(props)
}
this.prop = 1 // 实例属性
get prop() {
return this.prop
}
set prop(value) {
this.prop = value
}
}
// 使用
const test = new Test()
test.prop = 2 // 实际上调用了里面写的 set 方法
静态属性和方法
- 也是直接写在类中,但要加 static 关键字;
- 定义静态方法也是一样,在方法前面加上 static 关键字;
- 实例方法中拿到静态属性要通过 类名 获取,静态方法中可以通过this获取。
// 定义
class TestClass extends Test {
constructor(props = {}) {
super(props)
}
static prop = 1 // 静态属性
// 实例方法中要用类名拿静态属性
setProp(value) {
TestClass.prop = value + 1
}
// 静态方法中用this拿到静态属性
static get prop() {
return this.prop
}
static set prop(value) {
this.prop = value
}
}
// 使用
const test = TestClass.prop
TestClass.prop = test + 1
标签:
JavaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏