我正在尝试掌握 machina.js 的工作原理。
我定义了 state1
,它做自己的事情,它生成一个变量 someVar
,然后转换到 state2
。
如何将 someVar
作为参数传递给 state2
?
var fsm = new machina.Fsm({
initialState: "uninitialized",
states: {
uninitialized: {},
state1: {
_onEnter: function() {
var someVar = "..."; // Stuff.
this.transition("state2");
}
},
state2: {
_onEnter: function() {
// someVar as argument somehow...?
console.log(someVar);
}
}
}
});
最佳答案
你可能会做这样的事情:
function FiniteStateMachineSetup() {
this.someVar = null;
this.fsm = new machina.Fsm({
initialState: "uninitialized",
states: {
uninitialized: {},
state1: {
_onEnter: state1_onEnter.bind(null, this)
},
state2: {
_onEnter: state2_onEnter.bind(null, this)
}
}
});
}
function state1_onEnter(self) {
self.someVar = "..."; // Stuff.
self.fsm.transition("state2");
}
function state2_onEnter(self) {
// someVar as argument somehow...?
console.log(self.someVar);
}
然后您可以通过以下方式调用代码:
FiniteStateMachineSetup();
关于javascript - 在 Machina.js 中传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28474012/