JavaScript 中的有限状态机,第 2 部分: 实现组件
2010-09-14 13:20:54 来源:WEB开发网Mozilla Firefox、Opera 和 Netscape Navigator 的最新版本支持 World Wide Web Consortium(W3C)提议的 标准化事件模型(standardized event model)。这是首选的,因为很容易注册(和注销)事件函数,而且可以将浏览器处理的多个已注册函数链接起来。如果可用的话,可以调用 HTML 元素的 addEventListener 方法来连接鼠标事件,调用时要传递一个事件类型以及当 HTML 元素上发生此事件时调用的函数,如清单 3 所示。
清单 3. 连接鼠标事件的 JavaScript 代码
function FadingTooltip(htmlElement, tooltipContent, parameters) {
...
htmlElement.fadingTooltip = this;
if (htmlElement.addEventListener) { // for FF and NS and Opera
htmlElement.addEventListener(
'mouseover',
function(event) { this.fadingTooltip.handleEvent(event); },
false);
htmlElement.addEventListener(
'mousemove',
function(event) { this.fadingTooltip.handleEvent(event); },
false);
htmlElement.addEventListener(
'mouseout',
function(event) { this.fadingTooltip.handleEvent(event); },
false);
}
...
addEventListener 调用的第二个参数是匿名函数(anonymous function),也就是没有名称的函数。这是在 JavaScript 中在其他函数中定义函数的第一种方法,但不是惟一的方法,目前就采用这种方法。可以在 JavaScript 代码中的任何地方使用 function 关键字动态地定义匿名函数。它返回一个函数指针,可以像任何其他引用值一样使用它们。在 FadingTooltip 部件中,将函数指针作为参数传递给其他函数、测试它们是否为 null、将它们赋值给变量以及将它们声明为对象方法。
Tags:JavaScript 有限 状态
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接