typeScript学习-类、静态数据、静态属性应用

发布时间 2023-08-17 11:57:18作者: 空白格k

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 { }