JavaScript 中的有限状态机,第 1 部分: 设计一个小部件
2010-09-14 13:21:02 来源:WEB开发网核心提示: 有限状态机通过用直观的表格代替复杂的逻辑为设计增加了严密性,从传统意义上讲,JavaScript 中的有限状态机,第 1 部分: 设计一个小部件(2),有限状态机对开发诸如网络驱动程序和编译器这类程序颇有帮助,有限状态机也同样有助于开发基于浏览器的应用程序,实现此行为所用的 JavaScr
有限状态机通过用直观的表格代替复杂的逻辑为设计增加了严密性。从传统意义上讲,有限状态机对开发诸如网络驱动程序和编译器这类程序颇有帮助。有限状态机也同样有助于开发基于浏览器的应用程序。
在本系列中,您将练习开发一个样例有限状态机应用程序,来深入体验 JavaScript 语言的一些独特特性:
函数是一类 对象:与其它对象一样,函数可被创建,可赋给变量,也可作为参数传递。函数可在另一个函数内定义,还可赋给全局变量或作为结果返回。定义这些函数的函数返回之后,这些函数还会一直存在。
函数可以引用词法作用域(包围函数定义的嵌套括号)内的任何变量,例如本地变量(由函数定义)。这些变量是函数闭包 的一部分(该函数、函数自身的变量和该函数所使用的在其词法作用域内定义的所有变量),而且在定义这些变量函数返回后,这些变量依然会存在。
函数可以存储于关联数组 中(关联数组是这样一类数组:它们按名称而不是数值索引)。
这些语言特性可以提供一种紧凑而简明的方式来为状态间的事件和转移组织动作,还可以提供一种巧妙的方式来兼容不同的浏览器事件模型。
样例应用程序 FadingTooltip 比内置于大多数浏览器的默认工具提示更为精致。用 FadingTooltip 小部件创建的工具提示使用动画式淡入和淡出代替突然弹出和消失,并可随光标移动。设计此行为所用的有限状态机模式使逻辑清晰透明。实现此行为所用的 JavaScript 语言特性则使源代码紧凑而有效。
本文展示了如何使用有限状态机的图、表表示设计一个动画式小部件的行为。本系列的后续文章会介绍如何在 JavaScript 内实现有限状态机的表表示以及如何处理与在流行的浏览器内进行测试和实现相关的实际问题。
Tags:JavaScript 有限 状态
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接