ts的对象

56 阅读1分钟

静态属性,实例对象没法访问,只能 类.age,readonly sex:string = '只读属性'

class person{
  name:string = 'zhangsan'
  static age:number = 18
  
  readonly sex:string  = '只读属性'
  
  constructor(){}
  
  say(){
    console.log('我是张三')
  }
}
var pre =new person()
// 静态属性,实例对象没法访问,只能 类.age
person.age

新建一个狗的类

class Dog {
  name: string
  age: number
  constructor(name: string, age: number) {
    this.name = name
    this.age = age
  }
  break() {
    console.log('wang!!!')
  }
}

new Dog('旺财',1)

继承

class Dog extends animol{
    //子类的方法和父类一致就会覆盖父类的方法
}

封装数据类.localStorage,不同浏览器存储的内存不同,chrome是5M,有跨域

定义一个本地存储的增删改查

class dataHepler {
  dataKey: string
  primaryKey: string

  constructor(dataKey: string, primaryKey: string) {
    this.dataKey = dataKey
    this.primaryKey = primaryKey
  }
  readData(): any {
    let strData: string | null = localStorage.getItem(this.dataKey)
    let array: any = []
    if (strData != null) {
      // 字符串解析成数组
      array = JSON.parse(strData)
    }
    return array
  }

  saveData(arrData: Array<Object>): void {
    // 将数据转换为字符串
    let str = JSON.stringify(arrData)
    localStorage.setItem(this.dataKey, str)
  }

  addData(conStr: string): number {
    // 读取本地的缓存
    let arr: any = this.readData()
    // 传进来的新增对象
    let obj: object = {
      content: conStr,
    }
    // 根据数组的长度创建id,拿到最后一个的id+1:没有就是1
    let newId: number =
      arr.length > 0 ? arr[arr.length - 1][this.primaryKey] + 1 : 1
      // 将其id赋值为新的id
    obj[this.primaryKey] = newId
    // 保存到本地缓存
    this.saveData(arr)
    arr.push(obj)

    return newId
  }
  removeData(id: string|number): boolean {
    // 读取本地的缓存
    let arr: any = this.readData()
    // 返回要删除的数组的下标
  let index = arr.findIndex((item:any)=>{
    return item[this.primaryKey]==id
  })
  //判断是否存在,存在就返回true并删除
  if(index>-1){
    arr.splice(index,1)
    return true
  }
    return false
  }
}

let dh = new dataHepler('plData', 'id')