javascript设计模式之工厂模式
工厂模式分为简单工厂模式和复杂工厂模式,前者是使用一个类来生成实例,通常是一个单体,后者是使用子类来决定一个成员变量是哪个类的具体实例,也就是简单工厂包含在复杂工厂之中。
下面通过一个具体的实例来具体的说说这工厂的一二吧。
用Ajax技术发起异步请求是现在web开发中的一个常见任务。
1 //implements AjaxHandler,创建一个复杂的工厂来执行Ajax的一系列流程,里面包含了两个简单工厂
2 var SimpleHandler = function(){};
3
4 SimpleHandler.prototype = {
5 //第一个简单工厂执行Ajax的创建,请求,发送。。。等
6 request:function(method,url,callback,postVars){
7 var xhr = this.createXhrObject();
8 xhr.onreadystatechange = function(){
9 if(xhr.readyState != 4) return;
10 (xhr.status == 200) ?
11 //定义了一个全局对象callback来执行对返回参数的应用
12 callback.success(xhr.responseText,xhr.responseXML):
13 callback.failure(xhr.status);
14 };
15 xhr.open(method,url,true);
16 if(method != "POST") postVars = null;
17 xhr.send(postVars);
18 },
19 //第二个简单工厂是根据不同的情创建XHR对象,不论什么情况他都能返回一个正确的XHR对象
20
相关文档:
经过前段时间,学习《ajax完全自学手册》后,才知道javascript原来还可以这么写。
学过java,c#,vb的都知道类的概念,而类具有继承、封装、多态等功能。而javascript它不是面向对象语言,它是解释性语言。
但我们同样可以使用javascript来实现继承、多态。
javascript实现类,有多种方法。
方法一:构造方法。
......
一,javascript的流程控制语句
if(x==null) 或 if(typeof(x) =='undefined')可以简单写if(!x)
注意:在javascript中,false,null,undefined,0,""均是false
即 var x;
此时 if(x==null)
if(typeof(x)=='undefined')均为真
二,switch语句
switch(表达式)   ......
网上正则表达式的教程够多了,但由于javascript的历史比较悠久,也比较古老,因此有许多特性是不支持的。我们先从最简单地说起,文章所演示的正则基本都是perl方式。
元字符
( [ { \ ^ $ | ) ? * + .
预定义的特殊字符
.table1 {
border:1px solid #666;border-collapse:collapse;width:7 ......
confirm(string) 方法
1、有一个string类型参数,它的值就是在对话框中的文本信息。
2、boolean 类型的返回值。选择“确定”返回的就是true,选择“取消”返回false。
举例:
<script type="text/javascript">
function cfm() {
i ......