仰天一笑
昨日不悔,今日勿失,明日莫忧! —徐羽
博客园
::
首页
::
新随笔
::
联系
::
订阅
::
管理
::
241 随笔 :: 27 文章 :: 876 评论 :: 43 引用
一种JavaScript的设计模式
//简单的类的设计模式
//
定义一个类class1
function
class1()
{
//
构造函数
}
//
通过指定prototype对象来实现类的成员定义
class1.prototype
=
{
someProperty:
"
simple
"
,
someMethod:
function
{
//
方法代码
}
,
//
其实属性和方法
}
在一个类的成员之间互相引用,必须通过this指针来进行。因为在JavaScript中第个属性和方法都是独立的,它们通过this指针联系在一个对象上。
//
简单的带参数的事件设计模式
<
script language
=
"
JavaScript
"
type
=
"
text/javascript
"
>
<!--
//
将有参数的函数封装为无参数的函数
function
createFunction(obj, strFunc)
{
var
args
=
[];
//
定义args用于存储传递给事件处理程序的参数
if
(
!
obj) obj
=
window;
//
如果是全局函数则obj=window;
//
得到传递给事件处理程序的参数
for
(
var
i
=
2
; i
<
arguments.length; i
++
)
{
args.push(arguments[i]);
}
//
用无参数函数封装事件处理程序的调用
return
function
()
{
obj[strFunc].apply(obj, args);
//
将参数传递给指定的事件处理程序
}
}
//
定义类class1
function
class1()
{
//
构造函数
}
class.prototype
=
{
show:
function
()
{
//
show函数的实现
this
.onshow();
//
触发onshow事件
}
,
onShow:
function
()
{}
//
定义事件接口
}
//
创建class1的实例
var
obj
=
new
class1();
//
创建obj的onshow事件处理程序
function
objOnshow(userName)
{
alert(
"
hello,
"
+
userName);
}
//
定义变量userName
var
userName
=
"
terry
"
;
//
绑定obj的onShow事件
obj.onShow
=
createFunction(
null
,
"
objOnshow
"
, userName);
//
调用obj的show方法
obj.show();
//
-->
</
script
>
通过createFunction封装,就可以用一种通用的方案实现参数传递。
//
一个简单的开发框架
<
script language
=
"
javascript
"
>
var
http_request
=
false
;
function
send_request(url)
{
//
初始化、指定处理函数、发送请求的函数
http_request
=
false
;
//
开始初始化XMLHttpRequest对象
if
(window.XMLHttpRequest)
{
//
Mozilla 浏览器
http_request
=
new
XMLHttpRequest();
if
(http_request.overrideMimeType)
{
//
设置MiME类别
http_request.overrideMimeType(
"
text/xml
"
);
}
}
else
if
(window.ActiveXObject)
{
//
IE浏览器
try
{
http_request
=
new
ActiveXObject(
"
Msxml2.XMLHTTP
"
);
}
catch
(e)
{
try
{
http_request
=
new
ActiveXObject(
"
Microsoft.XMLHTTP
"
);
}
catch
(e)
{}
}
}
if
(
!
http_request)
{
//
异常,创建对象实例失败
window.alert(
"
不能创建XMLHttpRequest对象实例.
"
);
return
false
;
}
http_request.onreadystatechange
=
processRequest;
//
确定发送请求的方式和URL以及是否同步执行下段代码
http_request.open(
"
GET
"
, url,
true
);
http_request.send(
null
);
}
//
处理返回信息的函数
function
processRequest()
{
if
(http_request.readyState
==
4
)
{
//
判断对象状态
if
(http_request.status
==
200
)
{
//
信息已经成功返回,开始处理信息
alert(http_request.responseText);
}
else
{
//
页面不正常
alert(
"
您所请求的页面有异常。
"
);
}
}
}
</
script
>
posted on 2006-11-20 15:33
仰天一笑
阅读(1258)
评论(6)
编辑
收藏
所属分类:
Javascript/Ajax/XML
评论
#1楼
[
楼主
]
2006-11-20 15:44
仰天一笑
转自:
http://www.cnblogs.com/terry52/archive/2006/09/26/514895.html?Pending=true#Post
">
http://www.cnblogs.com/terry52/archive/2006/09/26/514895.html?Pending=true#Post
回复
引用
查看
#2楼
2007-04-25 12:39
sun jian[未注册用户]
Good FameWork, Thanks for sharing
回复
引用
#3楼
2007-04-27 10:47
gygn[未注册用户]
function createFunction(obj, strFunc) {
var args = [];//定义args用于存储传递给事件处理程序的参数
if(!obj) obj = window;//如果是全局函数则obj=window;
//得到传递给事件处理程序的参数
for(var i=2; i<arguments.length; i++) {
args.push(arguments[i]);
}
//用无参数函数封装事件处理程序的调用
return function() {
obj[strFunc].apply(obj, args);//将参数传递给指定的事件处理程序
}
}
不明白这个函数的意思,
if(!obj) obj = window;//如果是全局函数则obj=window; 这句话是什么意思,请帮忙解释一下。“如果是全局函数则obj=window”。
为什么在传递参数传得的null。(createFunction(null, "objOnshow", userName);
)。
回复
引用
#4楼
2008-06-09 13:42
求知无傲
不错喔。
回复
引用
查看
刷新评论
切换模板
发表评论
昵称:
[登录]
[注册]
主页:
邮箱:
(仅博主可见)
验证码:
看不清,换一个
评论内容:
登录
注册
[使用Ctrl+Enter键快速提交评论]
0
566182
导航:
网站首页
社区
新闻
博问
闪存
网摘
招聘
找找看
Google搜索
China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
China-Pub 计算机绝版图书按需印刷服务
相关文章:
最新IT新闻:
19岁天才黑客发布首个iPhone 3GS破解软件
新浪邮箱大本营粉墨登场!Sina.cn开放注册
IE市场份额首次跌破60%
Google App Engine宕机6小时——云的安全在哪里?
微软新推社交网站Windows Live Planet
相关链接:
公告
一、版权归原创作者所有。
二、坚持挖掘互联网宝藏。
三、重在技术交流,共享知识。
四、技术文章包括asp.net、seo、ajax、css、javascript等。
Email:ansonxy@gmail.com
MSN:dingxi819@yahoo.com.cn
我的最新闪存
今天收获不小,要更加努力
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
给我留言
查看留言
我参加的小组
WEB程序安全小组
我参与的团队
上海.NET俱乐部(0/0)
Ajax&Atlas技术团队(0/0)
软件项目管理团队(0/0)
.net企业应用开发(0/0)
我的标签
火车站售票点
(1)
上海火车站售票点
(1)
上海火车票预定送票公司
(1)
一票难求
(1)
海量查询
(1)
无限分级
(1)
树形结构数据查询
(1)
datatable
(1)
dataview
(1)
datatable和dataview
(1)
更多
随笔分类
(268)
ASP.Net-C#(75)
(rss)
CSS(1)
(rss)
DataBase(31)
(rss)
Javascript/Ajax/XML(49)
(rss)
产品专卖(4)
(rss)
电子商务
(rss)
古风古韵(10)
(rss)
谈天论地(31)
(rss)
网站建设(30)
(rss)
原创天地(37)
(rss)
文章分类
(27)
DotNet(12)
(rss)
DRM(5)
(rss)
Electronic Commerce(2)
(rss)
JavaScript(3)
(rss)
software engineering (5)
(rss)
相册
汇亚创意设计
上海汇亚科技公司
收藏夹
(202)
.Text(11)
(rss)
ADO.Net(4)
(rss)
Ajax/XML(10)
(rss)
ASP.Net(53)
(rss)
C#(6)
(rss)
DataBase(6)
(rss)
DataGrid(12)
(rss)
Html/Css(6)
(rss)
IIS(1)
(rss)
Script(24)
(rss)
搜索引擎(11)
(rss)
谈天论地(8)
(rss)
网站优化/推广(9)
(rss)
网址收集(23)
(rss)
项目管理(9)
(rss)
源代码(9)
(rss)
My Links
dudu
(rss)
jackei
(rss)
net366_汇亚科技
seo探索
公司BLOG
(rss)
海东
(rss)
黑梦SEO
汇亚创意设计
酷勤网
樂思蜀SEO博客
(rss)
李天平
(rss)
网络安全
兄弟blog
最新随笔
1. 几种常见的FTP软件的二进制设置说明
2. fckeditor在IE7下不显示
3. Div样式总结
4. 2003服务器 查IIS 挂马全过程(ARP挂马)
5. t-sql整理(转)
6. 防止卡巴被封的几点小常识供大家参考
7. SQLServer修改表所有者
8. onscroll事件导致flash叠影效果--setTimeout的妙用
9. Sql Server数据库被置疑后解决方法
10. [转]十二时辰养生法
11. 安装SQL SERVER2000提示注册表文件被挂起的解决方案
12. [转]科学思维-智慧国王故事
13. 23条心灵寄语献给在创业一线的兄弟姐妹
14. 余士维讲座中的十八个故事[转载]
15. DataTable 和 DataView 的理解
16. [推荐]无限分级数量查询优化
17. 一票难求-摘二片小诗已解胸口之闷
18. 上海火车站售票点
19. ERP项目管理12要点
20. ASP.NET常用代码
21. asp.net c#中对cookie的操作
22. 如何搭建企业局域网共享
23. SQL Sever安装问题
24. Asp.Net Web项目打包
25. 韩文数据库存取乱码解决方案
26. Seomoz年度Web2.0排名 中国网站无一入围
27. 数据库存取非简体中文出现乱码的解决
28. 商业网站设计主要原则
29. 网站策划,网站建设的重中之重
30. 软件项目实施规范小结
31. iis权限设置
32. 如何设置SQL Server 全文搜索
33. 批处理命令小集
34. 批量生成虚拟目录
35. 上海公交路线一览表
36. 抽闲破个案,放松一下(1)
37. IIS健全应用程序池设置
38. 《亮剑》李云龙原型之一:王近山中将
39. 如何清除木马--104种木马手工清除方法
40. 流媒体数字版权控制系统DRM
Google搜索
积分与排名
积分 - 509973
排名 - 57
最新评论
1. re: 上海长途汽车站客运站点及时刻表
请问从武汉到枣阳的车有那几个时间段
--梦想♂
2. re: onscroll事件导致flash叠影效果--setTimeout的妙用
这个方法我用过了,没有用呀。<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML...
--lanhai002
3. re: 管理者必读的四个小故事
您好,看您这篇文章,觉得很不错,不好意思没有经过您的同意我就将您的文章转我的网站上去了,如有不是还请谅解,谢谢!如果有什么事您可以发邮件到此邮箱macauley@163.com
--minmandy
4. re: [整理]asp.net 上传大文件解决方案
有没有AspnetUpload中dll的源代码,请发一份给我好吗,谢谢楼主!
lizhimin0310@163.com
--zhiminli
5. re: 数据库存取非简体中文出现乱码的解决
查了很多资料没有解决,楼主的帖子帮我解决了(第1和2条)
thx
--过客1
阅读排行榜
1. 上海长途汽车站客运站点及时刻表(44074)
2. ArrayList用法(26447)
3. 推荐--jQuery使用手册(24003)
4. 李白诗集(19504)
5. 推荐-高质量C++/C编程指南(林锐)(16137)
6. 经典推荐--.Net面试法宝(面试题收集)(15133)
7. 上海公交路线一览表(10121)
8. “SQL Server不存在或访问被拒绝”问题的解决(8523)
9. DataGrid中DropDownList的动态绑定和触发DropDownList事件(7660)
10. 远程连接SQL Server(7578)
11. [原]用window.location.href实现刷新另个框架页面(5638)
12. IIS启动不了(意外错误0x8ffe2740)(5244)
13. javascript实现datagrid客户端checkbox列的全选,反选 (5088)
14. window.close关闭窗口,不弹出系统提示,直接关闭(5048)
15. 征集佳句-精妙SQL语句收集(5003)
16. [整理]asp.net 上传大文件解决方案(4877)
17. Js+XML 操作(4787)
18. 关键字加亮--JS方法(4648)
19. location用法简单介绍(4546)
20. [强烈推荐]新手入门提速器,有了他,ASP.NET问题将迎刃而解(4297)
21. Sql Server数据库的备份和恢复措施(3948)
22. [转贴]Hello NHibernate(3793)
23. C# 中的类型转换(3729)
24. js事件列表(3665)
25. ASP.Net防止刷新自动触发事件的解决方案(3620)
26. 按比例缩放图片(3600)
27. 唐伯虎诗词(3440)
28. 抓取Web网页数据分析(3387)
29. ASP.NET 网站路径(3275)
30. [原]简易文本编辑器源码(3266)
31. 在C#中应用哈希表(Hashtable)(3208)
32. 不要让SQLServer自动转换害了你!(3197)
33. [原]Ajax简单客户登陆验证(3170)
34. 经典推荐—.NET相关最好东东(全球最新评价)(3164)
35. 界面设计测试规范(3160)
36. 满汉全席菜谱收藏版(3153)
37. [原]提交页面的定位--scrollIntoView的用法(3111)
38. DataGrid自动编号之黄金版(2989)
39. 如何搭建企业局域网共享(2850)
40. 正则表达式过滤HTML危险脚本(2755)
评论排行榜
1. [整理]asp.net 上传大文件解决方案(87)
2. 上海长途汽车站客运站点及时刻表(49)
3. 推荐--jQuery使用手册(39)
4. ArrayList用法(36)
5. 关键字加亮--JS方法(23)
6. 经典推荐--.Net面试法宝(面试题收集)(22)
7. 李白诗集(22)
8. “SQL Server不存在或访问被拒绝”问题的解决(21)
9. javascript实现datagrid客户端checkbox列的全选,反选 (18)
10. [推荐]测试你有没有经理头脑(17)