vbscript以及javascript的事件委托方案(转)
2008-07-14 10:45
357 查看
javascript版的:
function delegate()
{
this.event=new Array();
}
delegate.prototype.add=function(fun,obj)
{
this.event[this.event.length]=function(){
fun.apply(obj);
};
}
delegate.prototype.exec=function()
{
for(var i=0;i<this.event.length;i++)
{
this.event[i]();
}
}
delegate.prototype.del =function (num)
{
if (num < this.event.length)
{
this.event.splice(num, 1);
}
}
vbscript版的:
class delegate
dim arr()
dim arrTrue
Private Sub Class_Initialize
arrTrue=false
End Sub
function add(funname,obj)
if arrTrue=true then
redim Preserve arr(ubound(arr)+1,1)
else
arrTrue=true
redim Preserve arr(0,1)
end if
set arr(ubound(arr),0)=obj
arr(ubound(arr),1)=funname
End function
Sub exec
for i=0 to ubound(arr)
execute "arr(" & i & ",0)." & arr(i,1)
next
End Sub
end class
javascript版的可能比较好理解,而vbs需要用到反射机制才能模拟出委托来
execute "arr(" & i & ",0)." & arr(i,1)关键是这一句,才能很好的完成js中的闭包
function delegate()
{
this.event=new Array();
}
delegate.prototype.add=function(fun,obj)
{
this.event[this.event.length]=function(){
fun.apply(obj);
};
}
delegate.prototype.exec=function()
{
for(var i=0;i<this.event.length;i++)
{
this.event[i]();
}
}
delegate.prototype.del =function (num)
{
if (num < this.event.length)
{
this.event.splice(num, 1);
}
}
vbscript版的:
class delegate
dim arr()
dim arrTrue
Private Sub Class_Initialize
arrTrue=false
End Sub
function add(funname,obj)
if arrTrue=true then
redim Preserve arr(ubound(arr)+1,1)
else
arrTrue=true
redim Preserve arr(0,1)
end if
set arr(ubound(arr),0)=obj
arr(ubound(arr),1)=funname
End function
Sub exec
for i=0 to ubound(arr)
execute "arr(" & i & ",0)." & arr(i,1)
next
End Sub
end class
javascript版的可能比较好理解,而vbs需要用到反射机制才能模拟出委托来
execute "arr(" & i & ",0)." & arr(i,1)关键是这一句,才能很好的完成js中的闭包
相关文章推荐
- vbscript以及javascript的事件委托方案
- Javascript中事件捕获、事件冒泡以及事件委托机制
- javascript事件委托和jQuery事件绑定on、off 和one以及on绑定多个事件(重要)
- JavaScript 事件委托 以及jQuery对事件委托的支持
- JavaScript 事件委托 以及jQuery对事件委托的支持
- JavaScript事件代理和委托(Delegation)
- JavaScript 详说事件机制之冒泡、捕获、传播、委托
- c# 委托 事件 EventHandler 观察者模式 详解,以及和java的比较
- 详解JavaScript下的事件委托和this
- JavaScript 详说事件机制之冒泡、捕获、传播、委托
- javascript的事件冒泡,阻止事件冒泡和事件委托, 事件委托是事件冒泡的一个应用。
- Javascript—事件委托
- 学习之路三:关于运用单线程和委托以及事件自定义Timer类
- JavaScript事件委托的技术原理
- JavaScript提升性能之事件委托
- 理解JavaScript中的事件路由冒泡过程及委托代理机制
- JavaScript事件委托原理与用法实例分析
- 源码-JavaScript&jQuery交互式前端开发-第6章-事件-使用事件委托
- JavaScript 委托 实现触发多个事件
- javascript举例介绍事件委托的典型使用场景