2012-02-20 61 views
1

比方說,我建立一個簡單的MVC的JavaScript可視化。JavaScript的OOP - 類方法(簽名和公約)

一種特定的可視化視圖控制器可以是這個樣子:

Controller { 

model 
year 
width 
height 
xScale 
yScale 

render() { 
    this.year = this.model.get("year") 
    this.width = this.model.get("width") 
    updateScales(); 

    draw A, B, C 
} 

updateScales() { 
    this.xScale = this.width ... 
} 

} 

正如你所看到的,每個控制器的渲染方法被調用時,它設置一些屬性,並更新了「派生的規模屬性」 。

我有一個關於這個代碼的兩個問題:

1)它是一個不好的做法,有類方法直接在類的屬性工作?他們是否應該返回一個價值並簽名?

2)假設我想優化該代碼,以便當寬度或高度被改變updateScales僅調用。什麼是處理這種模型屬性變化相關邏輯的一種很好且相當通用的方法?

+0

你重新發明輪子? – dynamic 2012-02-20 13:11:31

+0

什麼車輪? :)我很好奇在這種情況下,返回值和明確設置簽名的優點和缺點。 – dani 2012-02-20 13:15:10

+2

1)取決於;)。 2)由於您已經爲您的問題設置了backbone.js框架標籤,請查看[它的'Model'文檔](http://documentcloud.github.com/backbone/#Model)並查找「更改」事件處理。 – 2012-02-20 13:18:03

回答

0

1)一般來說,通過集合得到方法來訪問屬性是一種好的做法。這樣,您可以輕鬆實現修改屬性時可以完成的其他操作。 2)as Julian D. said,你可以通過backbone.js的'change'事件來處理更新的比例。

但是,在你的文章中並不清楚,但是,如果你實際使用的是backbone.js或者沒有。