面向对象的JavaScript编程[6]

[入库:2005年8月18日] [更新:2007年3月25日]

本文简介:选择自 liuruhong 的 blog

    实现了属性和方法,剩下的就是event的实现了,我查找了许多资料,包括整个msdn关于jscript的参考,都没有看到一个很好的模型关于事件实现的,后来参考了一些站点编写hta(html component,有空我会写一些相关的文章)的实现,借助于比较扭曲(我个人认为)的方法可以大致的实现基于事件驱动的功能。大致的思路是这样子的:

    1.将所有的事件定义成属性,只要简单的声明就可以

    2.在需要触发事件的代码中判断事件属性是否是一个函数,如果是函数,直接执行函数代码,如果是字符串,那么执行字符串函数,通过eval(str)来执行。

    3) .在类的实例当中注册事件函数。

    为了简单说明如上的思路,采用timer这样简单的例子来表述如上的所提到的内容,如果只是为了简单的实现timer的功能,javascriptsetinterval函数就可以满足全部的要求,如下的代码只是用来说明timer的工作原理。

//class for timer
function timer(iinterval){
 //if not set the timer interval ,then defalut set to 500ms
 this.interval=iinterval || 500;
 this._handleinterval;
 this.timerevent=null
 function start(){
  if(this.interval!=0){
   this._handleinterval=setinterval("timercallback()",this.interval);
  }
 }
 function start(){
  clearinterval(this._handleinterval);
 }
 function timercallback(){
  if (typeof this.timerevent=="function"){
   this.timerevent();
  }

本文关键:OOP,Javascript,面向对象
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top