<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>New Web Project</title>
<script type="text/javascript" charset="UTF-8">
//惰性单体(和闭包单体有一些相似的地方)
/*
//命名空间
var Ext={};
Ext.Base=(function(){
//私有变量,控制返回单体对象。
var uniqInstance;//返回undifind
//需要一个构造器,init 初始化单体对象的方法。
function init(){
//私有成员变量
var a1=10;
var a2=true;
var fn1=function(){alert('fn1')};
var fn2=function(){alert('fn2')};
return{
attr1:a1,
attr2:a2,
method1:function(){
return fn1();
},
method2:function(){
return fn2();
}
};
}
return{
getInstance:function(){
if(!uniqInstance){//如果不存在,创建单体实列。
uniqInstance=init();
}
return uniqInstance;
}
};
})();
alert(Ext.Base.getInstance().attr1);
Ext.Base.getInstance().method1();
*/
//分支单体(判断程序的分支<浏览器差异检测 >)
var Ext={};
// var def=true; //FE
var def=false;//IE
Ext.More=(function(){
var objA={//提供火狐浏览器内部的一些配置
attr1:"FE属性1"
//属性1
//属性2
//方法1
//方法2
};
var objB={//提供IE浏览器内部的一些配置
attr1:"IF属性2"
//属性1
//属性2
//方法1
//方法2
};
return(def) ?objA:objB;
})();
alert(Ext.More.attr1);
</script>
</head>
<body>
<h1>New Web Project Page</h1>
</body>