静态属性,实例对象没法访问,只能 类.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')