Javascript 设计模式
Javascript
是一个很强大很灵活的语言,你既可以把它当作面向过程的语言,也可以把它当作面向对象的语言来用。这篇主要探讨一下如何用javascript来实现一个
Singleton类。相信有些编程经验的朋友们对Singleton模式都很熟悉。Singleton
模式主要用来限制一个类的多次实例化。一般来说系统创建的实例越少,占用资源则越少,效率就越高。
1 类图
2 实现
function Singleton()
{
if (Singleton.caller != Singleton.getInstance)
{
throw new Error("此类不支持公共构造函数!请调用Singleton.getInstance函数");
}
else
this.status = "creating";
}
Singleton._instance = null; //定义静态成员变量
Singleton.getInstance = function()
{
if (this._instance == null)
this._instance = new Singleton();
return this._instance;
}
3. 测试
先来试试看能否new 一个实例出来
var singleton1 = new Singleton();
alert (singleton1 .status);
运行结果如下:
结果如预料中一样不成功。
再来试试调用getInstance()来获得实例
var singleton1 = Singleton.getInstance();
alert (singleton1 .status);
运行结果如下:
这次看到创建成功了。
相关文档:
scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetL ......
1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
<table border oncontextmenu=return(false)> <td>no </table> 可用于Table
2. <body onselectstart="return false"> 取消选取、防止复制
3. onpaste="return false" 不准粘贴
4. oncopy="return false;" oncut="re ......
为了实现checkbox多选验证,使用jquery.validate , 无法实现自定义错误信息。上午Linchun带着我一块儿看jquery.validate.js 的源代码,发现优秀的代码真的是对JavaScript用的炉火纯青~ :)
delete 运算符:
是ECMAScript一元运算符。一元运算符只有一个参数,即要操作的对象或值。它们是 ......
<P>JScript 中的运算符优先级是一套规则。该规则在计算表达式时控制运算符执行的顺序。具有较高优先级的运算符先于较低优先级的运算符执行。例如,乘法的执行先于加法。</P>
<P>下表按从最高到最低的优先级列出 JScript 运算符。具有相同优先级的运算符按从左至右的顺序求值。</P>
<DIV ......