typeScript学习-类、静态数据、静态属性应用
typeScript学习
类、静态数据、静态属性应用
类:
定义:类就是拥有相同属性和方法的一系列对象的集合。
展开理解:类是一个模具,是从这该类包含的所有具体对象中抽象出来的一个概念,类定义了它包含的全体对象的静态特征和动态特征。
举例:
people 类
静态特征【属性】name、age、address、phone
动态特征【方法】doEat、doStep
desk 类
静态特征【属性】height、width、color、price、brandno、material
动态特征【方法】load
order 订单类
静态属性【属性】orderid、ordertime、custname
动态特征【方法】createOrder、modifyOrder、delOrder、chargeBack
静态成员
静态成员-静态属性
class People { name: string; age: number; addr: string; static count: number = 0; // 静态成员-静态属性 constructor(_name: string, _age: number, _addr: string) { this.name = _name; this.age = _age; this.addr = _addr; People.count++ } doEat() {} doStep() {} } let p1 = new People('zhangsan', 23, 'xxx小区') let p2 = new People('wangwu', 25, 'xxx小区2') let p3 = new People('wangwu', 25, 'xxx小区3') p1.doEat() p2.doStep() console.log(p1.name) // zhangsan console.log(p2.age) // 25 console.log(People.count) // 3 export { }
静态成员-静态方法
// 当一个类里的方法,在外部调用时,只需要一个对象就可以搞定,不需要创建多个对象,可以使用静态方法 class DateUtil { static formatDate() { } // 格式化日期 static diffDateByDay() { } // 两个日期之间的天数计算 static diffDateByHour() { } // 两个日期之前的小时计算 static timeConversion(restTime: number) { } // 天 时 分 秒 } // 静态方法 DateUtil.formatDate() export { }
单件(例)模型中两种实现
1、立即创建单件模式(饿汉式)
class DateUtil { static dateUtil = new DateUtil() // 立即创建单件模式(饿汉式) private constructor() { console.log("创建对象...") } formatDate() { console.log("formatDate") } // 格式化日期 diffDateByDay() { } // 两个日期之间的天数计算 diffDateByHour() { } // 两个日期之前的小时计算 timeConversion(restTime: number) { } // 天 时 分 秒 } console.log("abc") const dateUtil1 = DateUtil.dateUtil const dateUtil2 = DateUtil.dateUtil console.log(dateUtil1 === dateUtil2) // true dateUtil1.formatDate() // formatDate export { }
2、懒汉式
class DateUtil { static dateUtil: DateUtil static getInstance() { if (!this.dateUtil) { this.dateUtil = new DateUtil() } return this.dateUtil } private constructor() { console.log("创建对象...") } formatDate() { console.log("formatDate") } // 格式化日期 diffDateByDay() { } // 两个日期之间的天数计算 diffDateByHour() { } // 两个日期之前的小时计算 timeConversion(restTime: number) { } // 天 时 分 秒 } console.log("abc") const dateutil1 = DateUtil.getInstance() const dateutil2 = DateUtil.getInstance() console.log(dateutil1 === dateutil2) // true export { }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现