javascript 状态模式示例(JavaScript)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 状态模式示例(JavaScript)相关的知识,希望对你有一定的参考价值。

var StateManager = function() {
  var currState = 'wait';
  var states = {
    jump: function( state ) {
    },
    wait: function( state ) {
    },
    attack: function( state ) {
    },
    crouch: function( state ) {
    },
    defense: function( state ) {
      if ( currState === 'jump'  ) {
          return false;  //不成功,跳跃的时候不能防御
      }
    //do something;     //防御的真正逻辑代码, 为了防止状态类的代码过多, 应该把这些逻辑继续扔给真正的fight类来执行.
    currState = 'defense'; //  切换状态
    }
  }
  var changeState = function( state ) {
    states[ state ] && states[ state ]();
  }
  return {
      changeState : changeState
  }
}
var stateManager = StateManager();
stateManager.changeState( 'defense' );
if ( state === 'jump' ) {
   if ( currState === 'attack' || currState === 'defense' ){
     return false;
   }
}else if ( state === 'wait' ) {
   if ( currState === 'attack' || currState === 'defense' ){
     return true;
   }
}

以上是关于javascript 状态模式示例(JavaScript)的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript设计模式_13_状态模式

严格模式

Thingsboard_导航到新仪表板状态_Widget 自定义操作_Javascript 代码

十二月份阅读书单

JavaScript正则表达式常用技巧

MVVM模式理解(转)