我可以在哪里进行一些计算,例如计算员工工资?是否需要使用外部文件或者我可以使用模型或集合或视图?
问问题
60 次
1 回答
2
模型的属性表示数据实体 (Employee) 的状态。它的方法应该改变数据实体的状态。因此,模型的方法calculateSalary()
可能是对salary
属性进行操作(增加、减少、计算等)的不错选择。
这是 OOP 中的常用方法。当你有一个类Car
时speed = 0
,你可以调用它的方法run()
来增加speed
(改变状态)。员工和他/她的想法相同salary
。
var Person = Backbone.Model.extend();
var Employee = Person.extend({
defaults: {
hoursWorked: 0,
hourlyRate: 0,
salary: 0
},
initialize: function() {
Person.prototype.initialize.apply(this, arguments);
this.on('change:hoursWorked change:hourlyRate', this.calculateSalary);
this.calculateSalary();
},
calculateSalary: function() {
this.set('salary', this.get('hoursWorked') * this.get('hourlyRate'));
}
});
var driver = new Employee({
hoursWorked: 10,
hourlyRate: 15
});
console.log(driver.get('salary')); // 150
driver.set('hourlyRate', 25);
console.log(driver.get('salary')); // 250
driver.set('hoursWorked', 20);
console.log(driver.get('salary')); // 500
于 2013-08-15T01:44:37.293 回答