typescript 学习 系列 (五)

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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值