惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Darknet – Hacking Tools, Hacker News & Cyber Security
博客园_首页
T
The Blog of Author Tim Ferriss
罗磊的独立博客
The Register - Security
The Register - Security
IT之家
IT之家
D
Docker
爱范儿
爱范儿
Apple Machine Learning Research
Apple Machine Learning Research
Hugging Face - Blog
Hugging Face - Blog
博客园 - Franky
L
LangChain Blog
J
Java Code Geeks
博客园 - 三生石上(FineUI控件)
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
K
Kaspersky official blog
Latest news
Latest news
博客园 - 聂微东
酷 壳 – CoolShell
酷 壳 – CoolShell
Cyberwarzone
Cyberwarzone
人人都是产品经理
人人都是产品经理
C
CERT Recently Published Vulnerability Notes
The Hacker News
The Hacker News
T
Tailwind CSS Blog
S
SegmentFault 最新的问题
MongoDB | Blog
MongoDB | Blog
Scott Helme
Scott Helme
L
LINUX DO - 热门话题
Spread Privacy
Spread Privacy
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
D
DataBreaches.Net
Project Zero
Project Zero
H
Hackread – Cybersecurity News, Data Breaches, AI and More
G
Google Developers Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
C
Check Point Blog
S
Schneier on Security
NISL@THU
NISL@THU
T
Tor Project blog
P
Proofpoint News Feed
N
News and Events Feed by Topic
Last Week in AI
Last Week in AI
N
Netflix TechBlog - Medium
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
U
Unit 42
C
Cybersecurity and Infrastructure Security Agency CISA
T
The Exploit Database - CXSecurity.com
L
LINUX DO - 最新话题
Help Net Security
Help Net Security
Blog — PlanetScale
Blog — PlanetScale

博客园 - Awen

asp.net插件实现 一些顶级的设计站点(陆续更新) asp.net定时任务实现(原创) Monorail的一些常用的东西(验证码,分页。。。持续更新) 基于Monorail的系统功能模块化 SubSonic:我想要的动态查询 SubSonic:亚音速之光 一个顶N个的NextResult 自娱自乐 3.5 -开篇有益 WinFormUI-Docking初级使用 一个喜欢网页设计的程序员 一个关于Excel的处理类(部分参考网络上) 抛开映射关系,不oo的数据访问写法 Javascript改观过程1 - Awen - 博客园 CEIMS项目笔记2:重复的,让工具做去! 备份&收集(持续更新)! CEIMS开发日记:项目计划 Jsp,.net! asp.net优化探讨系列(3)
Javascript改观过程2
Awen · 2008-03-02 · via 博客园 - Awen

上次我们过程化地把功能实现了,然而也因此产生了问题,因为需求总是不断地改变的,过程式或函数式的编程虽然很直爽,可是后期带来的问题却可以让你的直爽的感觉瞬间消失!原来代码在javascript改观过程一
 好了,理清思路,需求还是那样,主要是为了重用,如果过程不够oo,不必奇怪,因为我oo能力还不行。呵呵!
首先我们定义一个类,叫popups,这个类的构造函数有两个参数,一个button对象和放置数据列表的容器!

function popups(buttonTarget,contrainer)
{
this._button=buttonTarget;
this._contrainer=contrainer;
}

然后是设置这两个参数的方法或者叫方法,和java的setProperty类似

popups.prototype={
SetButton:
function(btn){this._button=btn;},
SetContrainer:
function(con){this._contrainer=con;},
ShowData:
function(){
if(this.onShow)
{
for(var i=0;i<this.onShow.length;i++)
{this.onShow[i]();}
}

}
,
AttachEvent:
function(_eventhandle){
if(!this.onShow)
this.onShow=[];
this.onShow=push(_eventhandle);
}
}

这里看到有个ShowData方法,并不就是显示数据的方法,而是执行一个方法集合!我们回想原来的场景
1。点击按钮,按钮文字改为”隐藏“,
2。容器显示以及数据列表显示
。。。这里在点击按钮的时候是触发多事件的,所以就有了AttachEvent方法,这个方法接受一个方法函数为参数,并将其加入到方法数组中,然后我们再定义一个ShowData事件中触发onShow事件列表,这样就将这些额外的功能分解了,不会粘合在一块,以后要加另外的效果,比如说加个渐变效果,我们就可以写个方法,加到事件列表中,这和委托的效果类似!
接下来的工作就是把上次那些函数实现都放进类方法里面,封装在里面,以后要改,就只是改类,外层的调用类的代码不变!
研究jquery中,prototype有点大,不过很强,下次用他们来实现看看怎样简便!
痛苦的努力,并快乐着!