[repost ]JavaScript与有限状态机
original:http://www.ruanyifeng.com/blog/2013/09/finite-state_machine_for_javascript.html 有限状态机(Finite-state machine)是一个非常有用的模型,可以模拟世界上大部分事物。 简单说,它有三个特征: * 状态总数(state)是有限的。 * 任一时刻,只处在一种状态之中。 * 某种条件下,会从一种状态转变(transition)到另一种状态。 它对JavaScript的意义在于,很多对象可以写成有限状态机。 举例来说,网页上有一个菜单元素。鼠标悬停的时候,菜单显示;鼠标移开的时候,菜单隐藏。如果使用有限状态机描述,就是这个菜单只有两种状态(显示和隐藏),鼠标会引发状态转变。 代码可以写成下面这样: var menu = { // 当前状态 currentState: 'hide', // 绑定事件 initialize: function() { var self = this; self.on("hover", self.transition); }, // 状态转换 transition: function(event){ switch(this.currentState) { case "hide": this.currentState = 'show'; doSomething(); break; case "show": this.currentState = 'hide'; doSomething(); break; default: console.log('Invalid [...]
via WordPress http://blog.newitfarmer.com/programming/javascript/12699/repost-javascript%e4%b8%8e%e6%9c%89%e9%99%90%e7%8a%b6%e6%80%81%e6%9c%ba#utm_source=rss&utm_medium=rss&utm_campaign=repost-javascript%25e4%25b8%258e%25e6%259c%2589%25e9%2599%2590%25e7%258a%25b6%25e6%2580%2581%25e6%259c%25ba
via WordPress http://blog.newitfarmer.com/programming/javascript/12699/repost-javascript%e4%b8%8e%e6%9c%89%e9%99%90%e7%8a%b6%e6%80%81%e6%9c%ba#utm_source=rss&utm_medium=rss&utm_campaign=repost-javascript%25e4%25b8%258e%25e6%259c%2589%25e9%2599%2590%25e7%258a%25b6%25e6%2580%2581%25e6%259c%25ba
Labels: hanhuiwen
0 Comments:
Post a Comment
<< Home