Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Machina.js中传递变量_Javascript_Node.js_Machina.js - Fatal编程技术网

Javascript 在Machina.js中传递变量

Javascript 在Machina.js中传递变量,javascript,node.js,machina.js,Javascript,Node.js,Machina.js,我正在努力掌握machina.js的工作原理 我定义了state1,它做自己的事情,它产生一个变量someVar,然后它转换到state2 如何将someVar作为参数传递给state2 var fsm = new machina.Fsm({ initialState: "uninitialized", states: { uninitialized: {}, state1: { _onEnter: function() {

我正在努力掌握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();

展示一些爱,展示一些代码!根据要求,爱补充道。