Javascript设计模式States
Posted 咚咚锵咚呛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript设计模式States相关的知识,希望对你有一定的参考价值。
1.当一个对象内部的状态发生改变的时候会导致其行为发生改变
//状态对象的实现 var ResutlState=function(){ var States={ state0:function(){ console.log("第0种状态"); }, state1:function(){ console.log("第2种状态"); }, state2:function(){ console.log("第3种状态"); }, state3:function(){ console.log("第4种状态"); } } function show(result){ States[‘state‘+result] && States[‘state‘+result](); } return{ show:show } }(); //调用 ResutlState.show(2); //状态的优化 var MarryState=function(){ var _currentSate={}; var States={ jump:function(){ console.log("跳跃"); }, move:function(){ console.log("移动"); }, shoot:function(){ console.log("射击"); }, squat:function(){ console.log("蹲下"); } } //动作控制类 var Action={ changeState:function(){ var arg=arguments; _currentSate={}; if(arg.length){ for(var i=0;i<arg.length;i++){ _currentSate[arg[i]]=true } } return this; } , goes:function(){ for(var i in _currentSate){ States[i](); } return this; } } return{ change:Action.changeState, goes:Action.goes } } //调用函数 // MarryState().change(‘jump‘,‘shoot‘).goes().goes().change(‘shoot‘).goes(); //或者 var marr =new MarryState(); marr.change(‘jump‘,‘shoot‘).goes().change(‘jump‘).goes();
以上是关于Javascript设计模式States的主要内容,如果未能解决你的问题,请参考以下文章
VSCode自定义代码片段12——JavaScript的Promise对象