JavaScript之class的应用
工作中咱们常常须要创立一个object,除了常见的间接定义,还有用构造函数。而class实际上也是构造函数,只不过它是在构造函数上的一层包装。
明天就简略介绍些class的用法并举一个简略的例子。
一、类的申明
要应用到关键字class
举个例子
class DataBase {
constructor(length,keys,values){
this.data = []
for(let i = 0;i<length;i++){
this.data.push(this.createObjectByArray(keys,values))
}
}
createObjectByArray(keys,values){
let obj = {}
keys.forEach((key,index)=>{
obj[key] = values[index]
})
return obj
}
getValue(key,index){
return this.data[index][key]
}
update(key,value,index){
this.data[index][key] = value
}
query(filterFn){
return this.data.filter(filterFn)
}
get(index){
return this.data[index]
}
static test(){
return 'test'
}
}
咱们通过class关键字定义了一个DataBase的类
这个类在构建时须要传入三个参数,length、keys、length
构件时创立数组并通过调用外部的createObjectByArray办法初始化data
一个类只有一个constructor办法,外面专门用于创立和初始化一个由class创立的对象。
createObjectByArray、getValue等办法则是其原型办法
后面有static关键字的则是静态方法
静态方法的应用不须要实例化该类,通常用于为一个应用程序创立工具函数(总结起来就是在对于输入-输入十分固定且也不须要和类外面其余的数据绑定的利用场景,没有必要应用实例化办法。)
有趣味的同学能够试试下面办法,上面举一个简略例子:
const myData = new DataBase(6,['name','age'],[null,null])
myData.update('name','Tom',0)
通过类的形式,能够让逻辑、构造显得更加清晰,而不是说我每次保护一个Array的时候都手动批改,保护的多了,再解决还是很麻烦的。
发表回复