假设我正在构建一个简单的MVC JavaScript可视化。
特定可视化视图的控制器可能如下所示:
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 ...
}
}
如您所见,每次调用Controller的render方法时,它都会设置一些属性并更新“派生的scale属性”。
我对此代码有两个问题:
1)让类方法直接在类属性上工作是不好的做法吗?他们应该返回一个值并签名吗?
2)假设我想优化此代码,以便只在更改宽度或高度时调用updateScales。处理这种模型属性改变相关逻辑的好处 - 而且是相当通用的方法是什么?
答案 0 :(得分:0)
1)通常,通过 set 和 get 方法访问属性是一种很好的做法。这样,您可以轻松实现在修改属性时可以执行的其他操作。 2)作为Julian D. said,您可以使用backbone.js的'change'事件处理更新比例
但是,如果您实际上使用的是backbone.js,则在您的帖子中并不清楚。