易截截图软件、单文件、免安装、纯绿色、仅160KB

javascript设计模式_第二部分_单体模式

 单体模式
优点:把代码组织得一致并隔离,更容易阅读和维护,提高稳定性;用于优化,提升性能
缺点:可导致强耦合
5.1 单体的基本结构
var Singleton = {
attribute1 : true,
attribute2 : 10,

method1 : function(){},
method2 : function(){}
};

严格按定义来说,C1不是一个单体,因为它不是一个可实例化的类
对象字面量只是创意单体的方式之一.
并非所有的对象字面量都是单体,只用来模仿关联数组及容纳数据的就不是单体.
5.2 划分命名空间
var MyNamespace = {}
MyNamespace.common = {};

5.3 用作特定网页专用代码的包装器的单体
GiantCorp.RegPage = {
FORM_ID : 'reg-form',
//method
handSubmit : function(e){
e.preventDefault();
//...
GiantCorp.RegPage.sendRegistration();
},
init : function(){
GiantCorp.RegPage.formEl = $(GiantCorp.RegPage.FORM_ID);
addEvent(GiantCorp.RegPage.formEl,'submit',GiantCorp.RegPage.handSubmit);
}

};
addLoadEvent(GiantCorp.RegPage.init);
//以上代码将属性及方法都统一到一个单体中,并通过init来绑定事件,最后在页面上调用init即可实现特定页面的使用

某网页专用代码,最好馐在自己的单体对象中
5.4 拥有私用成员的单体
 1) 下划线表示法
GiantCorp.DataParser = {
//Private methods
_stripWhitespace : function(str){
return str.replace(/\s+/,'');
},
_stringSplit : function(str,delimiter){
return str.split(delimiter);
},
//Public method
stringToArray : function(str, delimiter,stripWS){
if(stripWS){
str = this._stripWhitespace(str);
}
var outputArray = this._stringSplit(str,delemiter);
return outputArray;
}
}

    2) 使用闭包
     MyNamespace.Singleton = (function(){
return {};
})();

这种方式与直接使用对象字面量没什么区别,但这个包装函数创建了一个可以用来添加私用成员的闭包,任何添加在这个匿名函数中而不在对象字面量中的都将成为私有成员
MyNamespace.Singleton = (function(){
//Private members
var p1 = false;
var p2 = 10;
function p3(){}
return {
//Public members
pub1 : true,
pub2 : 10,
pub3 : functi


相关文档:

一个简单横向javascript日期控件

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title> new document </title>
  <meta name="generator" content="edit ......

Javascript刷新页面的几种方法

Javascript刷新页面的几种方法:
程序代码
1    history.go(0) 
2    location.reload() 
3    location=location 
4    location.assign(location) 
5    document.execCommand('Refres ......

javascript学习小结

 0.链接css文件和js文件
<link rel="stylesheet" href="../css/style.css" mce_href="css/style.css" type="text/css">
<mce:script language="javascript" src="../includes/jslib.js" mce_src="includes/jslib.js" ></mce:script>
1.关闭输入法

<input style="ime-mode ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号