<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>