易截截图软件、单文件、免安装、纯绿色、仅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 继承详解2

 这一章我们将会重点介绍JavaScript中几个重要的属性(this、constructor、prototype), 这些属性对于我们理解如何实现JavaScript中的类和继承起着至关重要的作用。
this
this表示当前对象,如果在全局作用范围内使用this,则指代当前页面对象window; 如果在函数中使用this,则this指代什么是根据运行时此函数在什 ......

JavaScript 继承详解4

在本章中,我们将分析Douglas Crockford关于JavaScript继承的一个实现
Crockford是JavaScript开发社区最知名的权威,是JSON
、JSLint
、JSMin
和ADSafe
之父,是《JavaScript: The Good Parts》的作者。
现在是Yahoo的资深JavaScript架构师,参与YUI的设计开发。 这里有一篇文章
详细介绍了Crockford的生平和著作。 ......

JavaScript 正则表达式

今天在博客园上看到一篇文章,跟着学习了一下,转过来与大家分享,部分内容我做了补充! 
一、JavaScript正则表达式基本知识 
1、JavaScript正则表达式创建和用法 
    声明正则表达式有两种方式:
a) var reCat = new RegExp("cat");
b) var reCat = /cat/;  //perl风格(推荐)& ......

javascript判断变量是否定义

直接使用未定义的Javascript变量时,页面会报错并无法执行,比如
if (varName=="")
{
}
需要先判断变量是否定义,使用typeof函数可以判断,如下使用:
if (typeof(ipaddr)=='undefined')
{
window.alert('ipaddr未定义');
} ......

12款Javascript 表格控件(javaeye)

    12款JavaScript表格控件。表格控件(DataGrid )允许最终用户阅读和写入到绝大多数数据库的应用程序。DataGrid 控件可以在设计时快速进行配置,只需少量代码或无需代码。当在设计时设置了DataGrid 控件的 DataSource 属性后,就会用数据源的记录集来自动填充该控件,以及自动设置该控件的列标头。然后您就 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号