单例模式、惰性函数

<script type="text/javascript">
		//1.定义一个对象
		var obj = {
			
			//2.初始化方法
			init:function(){
				//3.如果自己的xhr有值真的 就直接返回自己的xhr属性
				if(this.xhr){
					
					return this.xhr;
					
				}else{
					alert('没有属性初始化一次');
					//4.如果自己的xhr不存在那么 设置自己的xhr属性然后再返回出去
					return this.xhr = new XMLHttpRequest();
					
					
				}
				
			},
			
			xhr:false
			
		}
		
		//执行初始化
		
		var ajax = obj.init();
		
		
		var ajax1 = obj.init();
		var ajax1 = obj.init();
		var ajax1 = obj.init();
		var ajax1 = obj.init();
		var ajax1 = obj.init();
		
		
		
		alert(ajax===ajax1);
		
		/**
		 * 单例模式 只返回一个对象,只会执行一次实例化。 只会new一次。
		 * 只执行一次!!!!
		 * 
		 */
		
		
		
	</script>
惰性函数:
<script type="text/javascript">
		//1.自定义函数
		function demo(){
			
			if(window.XMLHttpRequest){
				
				//console.log('是主流浏览器');
				
				return new XMLHttpRequest();
				
			}else{
				alert('杀马特浏览器');
				return new ActiveXObject('Microsoft.XMLHttp');
			}
			
		}
		
		//demo();
		//demo();
		
		function cctv(){
			
			if(window.XMLHttpRequest){
				alert('判断浏览器是主流的');
				
				cctv = function(){
					alert('再也不用判断了');
					return new XMLHttpRequest();
					
				}
			}else{
				alert('非主流');
				cctv = function(){
					
					return new ActiveXObject('Microsoft.XMLHttp');
					
				}
			}
		}
		
		
		
		
		
		
		
		cctv();
		cctv();
		cctv();
		cctv();
		//
		
	</script>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值