WEB开发网
开发学院网页设计JavaScript JavaScript 中的有限状态机,第 2 部分: 实现组件... 阅读

JavaScript 中的有限状态机,第 2 部分: 实现组件

 2010-09-14 13:20:54 来源:WEB开发网   
核心提示: 既然已经连接了所有流行的浏览器中的鼠标事件,对象构造方法已经完整了,JavaScript 中的有限状态机,第 2 部分: 实现组件(9),可以返回到对象原型了,设置计时器并连接计时器事件我们已经完成了 FadingTooltip 构造方法,这将 self 变量封闭在函数定义中,所以当浏览器

既然已经连接了所有流行的浏览器中的鼠标事件,对象构造方法已经完整了,可以返回到对象原型了。

设置计时器并连接计时器事件

我们已经完成了 FadingTooltip 构造方法,可以继续填充它的原型。在 JavaScript 中,对象原型可以包含方法和变量;方法仅仅是指向函数的变量。首先定义一些通用的方法,它们启动和取消计时器。

在第 1 部分中的设计阶段提到过,JavaScript 提供两种类型的计时器:一次定时器和重复断续器,有限状态机需要这两种定时器。可以通过调用 setTimeout 或 setInterval 函数启动计时器,传递的参数是一个时间值(以毫秒为单位)以及当发生 timeout 或 timetick 事件时要调用的函数。它们返回不透明度的引用,可以将这些引用传递给 clearTimeout 或 clearInterval 函数来取消计时器。

当超过 timeout 值指定的时间时,或者在每次到达 timetick 时间间隔时,浏览器将调用传递给 setTimeout 和 setInterval 函数的计时器事件函数(对于 timetick,这个过程一直重复到取消计时器为止)。但是,这些 timeout 和 timetick 函数不会成为任何对象的方法。当浏览器调用它们时,this 变量指向全局的 window 对象。浏览器并不将关于计时器事件的任何信息传递给这些函数。

学会处理 鼠标事件 之后,连接计时器事件也就不困难了。当设置计时器时,将内置的 this 变量(它指向包含状态变量的 FadingTooltip 对象)复制到局部变量 self 中。self 变量处于 setTimeout 和 setInterval 函数调用的词法范围。然后,定义使用 self 变量的匿名函数,并将它们作为参数传递给 setTimeout 和 setInterval 函数。这将 self 变量封闭在函数定义中,所以当浏览器调用函数时它仍然可用,见清单 6。

上一页  4 5 6 7 8 9 10  下一页

Tags:JavaScript 有限 状态

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接