У меня есть «основной» объект с именем Application
, в котором будут храниться все мои функции, относящиеся к этому конкретному сценарию.
В этом объекте есть несколько различных функций, например, start()
и pause()
, которые взаимодействуют с дочерним объектом.
При вызове этих функций из дочернего объекта (объекта Application или даже глубже) я должен напрямую ссылаться на Application.function()
. Который может получить очень беспорядок . Это тот же случай в этих функциях, если мне нужно будет взаимодействовать с дочерними данными, this.Game.instance.sessionId
. Это сделано, чтобы потерпеть неудачу, что если я добавлю еще больше объектов в будущем, когда моя потребность возрастет? Это может привести к путанице, не говоря уже о продолжительности, только при взаимодействии с другим дочерним / родительским объектом.
Пример кода:
var Application = {
//Start the whole application
start: function() {
doSomething(this.Game.instance) //do something with the game instance object
},
pause: function() {
//pause the current sessionId
interactWithMyServer(this.Game.instance.sessionId); //clutty
}
Game: {
//redraw the game to reflect changes
redraw: function() {
someDrawFunction(this.instance); //draw the instance
},
//Stores information about the game instance from the server, changes often
//bad example with the pause, but just to get the idea of my example
instance: {
gameId: 23,
sessionId: 32,
map: 32,
//dummy function
pause: function() {
Application.pause(); //works, but I have to start with the "root" object, Application - how to avoid this?
}
}
}
};
Извините за глупый код, просто пытался показать мою проблему.
Как структурировать это, или точнее перестроить, наиболее правильными и чистыми способами?