在哪里可以进行一些计算来计算员工薪水?是否需要使用外部文件或我可以使用模型或集合或视图?
答案 0 :(得分: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