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

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

 2010-09-14 13:20:54 来源:WEB开发网   
核心提示: Mozilla Firefox、Opera 和 Netscape Navigator 的最新版本支持 World Wide Web Consortium(W3C)提议的 标准化事件模型(standardized event model),这是首选的,JavaScript 中的有限状态机,第

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、将它们赋值给变量以及将它们声明为对象方法。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:JavaScript 有限 状态

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