2016-02-29 29 views
1

我想在javascript中使用MVC模式,我偶然發現了一個問題。JavaScript中的MVC:我應該在實例化這三個實體時使用回調嗎?

我用這樣的:

var model = new Model(); 
var view = new View(model); 
var controller = new Controller(view, model); 

指的這三個實體:

//MODEL(empty yet but it's normal) 
function Model() { 
} 

//VIEW 
function View(model) { 
    this._model = model; 
    this._drawLogin(); 
} 

//CONTROLLER 
function Controller(model, view) { 
    this._model = model; 
    this._view = view; 
    this._displayView(); 
    console.log(view); 
} 

以我從我的控制器的console.log(視圖),它返回一個空對象和我不不明白爲什麼。

Object { } 

它是否與回調函數有關?我是否應該通過回調函數實例化每個實體,以確保在另一個實體之前創建了一個實體?

我想這樣的事情沒有成功:

function createModel(createView) { 
    model = new Model(); 
    createView = function(createController) { 
     view = new View(model) 
     createController = function() { 
      controller = new Controller(model,view); 
     } 
    } 
} 

回答

1

我確實不得不去回調。這是我所做的。 :

var model; 
var view; 
var controller; 

function createMVC(createModel, createView, createController) { 
    createModel(); 
    createView(); 
    createController(); 
} 
function createModel() { 
    model = new Model(); 
} 
function createView() { 
    view = new View(model); 
} 
function createController() { 
    controller = new Controller(model, view); 
} 
createMVC(createModel, createView, createController); 
相關問題