1.class 构造器 constructor
//知识点一
class GouzhaoqiA {
//正常写法
/*public name:string;
constructor(name:string){
this.name = name
}*/
//简便写法
constructor(public name:string){
this.name = name;
}
}
var gouzhoaqiB = new GouzhoaqiA('构造器')
console.log(gouzhoaqiB.name)
//知识点二
class GouzhaoqiC{
constructor(public name:string){
this.name = name
}
getName(){
console.log(this.name)
}
}
class GouzhaoqiD extends GouzhaoqiC{
constructor(){
super('啦啦啦')
}
getExtendsName(){
super.getName()
}
}
const GouzhaoqiE = new GouzhaoqiD()
GouzhaoqiE.getExtendsName()
// 1.如果调用子类,里面有构造器。不调用super报错结果
// class GouzhaoqiQ extends GouzhoaqiC{
// constructor(){ }
// }
// var GouzhaoqiZ = new GouzhaoqiQ(23)
2.class 类的 getter 和 setter 访问器
class ClassA {
// private 私有属性,只能当前类调用
constructor(private nameZ:string){}
get getName (){
return this.nameZ;
}
set setName(names:string){
this.nameZ = names;
}
}
var classB = new ClassA('class 类的 getter 和 setter 访问器');
console.log(classB.getName);
classB.setName = 'set改变私有属性值'
console.log(classB.getName);
3.// class readonly 只读属性
class ZhiduA {
readonly names:string
constructor(name:string){
this.names = name
}
}
var zhiduB = new ZhiduA('readonly 只读属性')
// zhiduB.names = '666' //报错,告诉我们他只是一个只读属性
console.log(zhiduB.names)
4.class 静态属性 static (可以不用new就调用class类里面的方法)
class jingtaiStatic{
static getName(){
console.log('静态属性 static')
}
}
jingtaiStatic.getName()
5.单利模式
class JingtaiA{
private static inface :JingtaiA;
private constructor(public name :string){}
// static 是把这个方法挂载到类上面。而不是类的实例上面。(这一句重要)
static getNew(){
if(!this.inface){
return new JingtaiA('静态属性=单例模式')
}else{
return this.inface
}
}
}
// 1.设置了private, private constructor 使得外部无法通过new调用JingtaiA了
// var jingtaiB = new JingtaiA()
// var jingtaiC = new JingtaiA()
// 不管调用几次,都是调用的一个类
var jingtaiD = JingtaiA.getNew()
console.log(jingtaiD.name)
var jingtaiE = JingtaiA.getNew()
console.log(jingtaiE.name)
typescript 学习 系列 (五)
最新推荐文章于 2023-12-04 17:09:46 发布