仰天一笑
昨日不悔,今日勿失,明日莫忧! —徐羽
博客园
::
首页
::
新随笔
::
联系
::
订阅
::
管理
::
230 随笔 :: 27 文章 :: 803 评论 :: 39 Trackbacks
一种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
仰天一笑
阅读(1157)
评论(6)
编辑
收藏
所属分类:
Javascript/Ajax/XML
评论
#1楼
[
楼主
]
2006-11-20 15:44
仰天一笑
转自:
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
求知无傲
不错喔。
回复
引用
查看
社区
新闻
新用户注册
刷新评论列表
标题
姓名
主页
Email
(只有博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
所属分类的其他文章:
·
iis权限设置
·
批量生成虚拟目录
·
取得当前鼠标的X,Y坐标
·
uri和url的定义及关系
·
HTML 组件
·
关键字加亮--JS方法
·
html页面中嵌入html页面
·
location用法简单介绍
·
DIV+CSS三行两列经典布局
·
javascript实现datagrid客户端checkbox列的全选,反选
最新IT新闻:
·
第一财经周刊:当前互联网世界正处无秩序时代
·
Visual Studio 2008 SDK 1.1 发布
·
死敌VMware变身微软认证计划新成员
·
英特尔雅虎开发网络计算机频道
·
Windows Live视频邮件9月9日开始测试
博客园新闻频道
博客园首页
社区
公告
一、版权归原创作者所有。
二、坚持挖掘互联网宝藏。
三、重在技术交流,共享知识。
四、技术文章包括asp.net、seo、ajax、css、javascript等。
Email:ansonxy@gmail.com
MSN:dingxi819@yahoo.com.cn
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
(17)
给我留言
查看留言
我参与的团队
上海.NET俱乐部(2/2199)
Ajax&Atlas技术团队(0/1147)
.net企业应用开发(1/107)
我的标签
火车站售票点
(1)
上海火车站售票点
(1)
上海火车票预定送票公司
(1)
一票难求
(1)
海量查询
(1)
无限分级
(1)
树形结构数据查询
(1)
datatable
(1)
dataview
(1)
datatable和dataview
(1)
更多
随笔分类
(258)
ASP.Net-C#(75)
(rss)
DataBase(27)
(rss)
Javascript/Ajax/XML(48)
(rss)
产品专卖(4)
(rss)
古风古韵(10)
(rss)
谈天论地(30)
(rss)
网站建设(27)
(rss)
原创天地(37)
(rss)
文章分类
(27)
DotNet(12)
(rss)
DRM(5)
(rss)
Electronic Commerce(2)
(rss)
JavaScript(3)
(rss)
software engineering (5)
(rss)
相册
汇亚创意设计
上海汇亚科技公司
收藏夹
(200)
.Text(11)
(rss)
ADO.Net(4)
(rss)
Ajax/XML(10)
(rss)
ASP.Net(53)
(rss)
C#(6)
(rss)
DataBase(5)
(rss)
DataGrid(12)
(rss)
Html/Css(6)
(rss)
IIS(1)
(rss)
Script(24)
(rss)
搜索引擎(11)
(rss)
谈天论地(8)
(rss)
网站优化/推广(9)
(rss)
网址收集(22)
(rss)
项目管理(9)
(rss)
源代码(9)
(rss)
My Links
dudu
(rss)
jackei
(rss)
net366_汇亚科技
seo探索
公司BLOG
(rss)
海东
(rss)
黑梦SEO
汇亚创意设计
李天平
(rss)
兄弟blog
最新随笔
1. [转]科学思维-智慧国王故事
2. 23条心灵寄语献给在创业一线的兄弟姐妹
3. 余士维讲座中的十八个故事[转载]
4. DataTable 和 DataView 的理解
5. [推荐]无限分级数量查询优化
6. 一票难求-摘二片小诗已解胸口之闷
7. 上海火车站售票点
8. ERP项目管理12要点
9. ASP.NET常用代码
10. asp.net c#中对cookie的操作
11. 如何搭建企业局域网共享
12. SQL Sever安装问题
13. Asp.Net Web项目打包
14. 韩文数据库存取乱码解决方案
15. Seomoz年度Web2.0排名 中国网站无一入围
16. 数据库存取非简体中文出现乱码的解决
17. 商业网站设计主要原则
18. 网站策划,网站建设的重中之重
19. 软件项目实施规范小结
20. iis权限设置
21. 如何设置SQL Server 全文搜索
22. 批处理命令小集
23. 批量生成虚拟目录
24. 上海公交路线一览表
25. 抽闲破个案,放松一下(1)
26. IIS健全应用程序池设置
27. 《亮剑》李云龙原型之一:王近山中将
28. 如何清除木马--104种木马手工清除方法
29. 流媒体数字版权控制系统DRM
30. 电信增值业务寻找合作伙伴
31. 电子商城
32. 企业及时通讯软件源代码销售,功能类似QQ/UC/贸易通
33. 50个不上你网站的理由
34. 价值50个亿的10句话
35. asp.net项目 automation服务器不能创建对象
36. 如何杀除恶意网站的网页病毒
37. 电脑推荐命令全集-值得收藏
38. 取得当前鼠标的X,Y坐标
39. IIS启动不了(意外错误0x8ffe2740)
40. window2003 安全配置
积分与排名
积分 - 428782
排名 - 46
最新评论
1. re: 余士维讲座中的十八个故事[转载]
看了让人成长很多.
--小丫头
2. re: 推荐--jQuery使用手册
哦,多谢了!但我还是不知道jquery-1.2.6.min.js这个文件有什么作用啊
--一壶水酒
3. re: 推荐--jQuery使用手册
没加载jquery-1.2.6.min.js当然不行 <html> <head> <title>jQuery Starterkit</title> &l...
--Michael-G
4. re: 推荐--jQuery使用手册
哎,没有办法吗!
--一壶水酒
5. re: 推荐--jQuery使用手册
难道没有人能够找出错误来吗?
--一壶水酒
阅读排行榜
1. 上海长途汽车站客运站点及时刻表(31829)
2. ArrayList用法(22165)
3. 李白诗集(18413)
4. 推荐--jQuery使用手册(15447)
5. 推荐-高质量C++/C编程指南(林锐)(14677)
6. 经典推荐--.Net面试法宝(面试题收集)(13556)
7. 上海公交路线一览表(8291)
8. “SQL Server不存在或访问被拒绝”问题的解决(7788)
9. DataGrid中DropDownList的动态绑定和触发DropDownList事件(7251)
10. 远程连接SQL Server(7152)
11. [原]用window.location.href实现刷新另个框架页面(5118)
12. javascript实现datagrid客户端checkbox列的全选,反选 (4759)
13. 征集佳句-精妙SQL语句收集(4664)
14. window.close关闭窗口,不弹出系统提示,直接关闭(4653)
15. 关键字加亮--JS方法(4340)
16. location用法简单介绍(4318)
17. [整理]asp.net 上传大文件解决方案(4231)
18. IIS启动不了(意外错误0x8ffe2740)(4190)
19. [强烈推荐]新手入门提速器,有了他,ASP.NET问题将迎刃而解(4083)
20. Js+XML 操作(4042)
21. Sql Server数据库的备份和恢复措施(3818)
22. [转贴]Hello NHibernate(3710)
23. C# 中的类型转换(3463)
24. js事件列表(3319)
25. 按比例缩放图片(3248)
26. ASP.Net防止刷新自动触发事件的解决方案(3244)
27. ASP.NET 网站路径(3113)
28. 不要让SQLServer自动转换害了你!(3020)
29. 经典推荐—.NET相关最好东东(全球最新评价)(2999)
30. 在C#中应用哈希表(Hashtable)(2975)
31. 界面设计测试规范(2958)
32. [原]Ajax简单客户登陆验证(2891)
33. DataGrid自动编号之黄金版(2878)
34. [原]简易文本编辑器源码(2748)
35. [原]提交页面的定位--scrollIntoView的用法(2715)
36. 抓取Web网页数据分析(2695)
37. 网站开发简单规范(2532)
38. DIV+CSS三行两列经典布局(2419)
39. [经典推荐]事半功倍系列之javascript(二)(2250)
40. 网页屏蔽(左右键,代码等)的非JS方法(2202)
评论排行榜
1. [整理]asp.net 上传大文件解决方案(81)
2. 上海长途汽车站客运站点及时刻表(36)
3. ArrayList用法(34)
4. 推荐--jQuery使用手册(25)
5. 关键字加亮--JS方法(23)
6. 李白诗集(21)
7. “SQL Server不存在或访问被拒绝”问题的解决(21)
8. 经典推荐--.Net面试法宝(面试题收集)(21)
9. javascript实现datagrid客户端checkbox列的全选,反选 (18)
10. [推荐]测试你有没有经理头脑(17)
Powered by:
博客园
Copyright © 仰天一笑