У меня есть модуль, который содержит метод создания своего рода. Модуль загружается в другой модуль через requireJS, например, так:
define(['lib/state-machine'],
function (stateMachine) {
// Creator method.
stateMachine.create({
events : [ { name: 'Enter', from: 'Initialised', to: 'Running' }],
});
}
);
По умолчанию метод создателя принимает объект, полный обратных вызовов. То, что я хотел бы сделать, это использовать модуль, вызывающий его как объект для обратных вызовов. Например, если я использовал стандартный подход и дал создателю объект, подобный этому:
callbacks { onEnter: function () {
// Do something here.
}
}
На самом деле он должен перейти к 'onEnter' в самом модуле:
define(['lib/state-machine'],
function (stateMachine) {
function onEnter () {
// This method gets fired by the state machine.
}
// Creator method.
stateMachine.create({
events : [ { name: 'Enter', from: 'Initialised', to: 'Running' }],
});
}
);
Примечание. Конечный автомат предполагает существование метода на основе имени события. Поэтому, когда возникает событие Enter, оно всегда пытается найти метод onEnter. Конечный автомат, который я использую, можно найти по адресу: https://github.com/jakesgordon/javascript-state-machine/