1

我可以在哪里进行一些计算,例如计算员工工资?是否需要使用外部文件或者我可以使用模型或集合或视图?

4

1 回答 1

2

模型的属性表示数据实体 (Employee) 的状态。它的方法应该改变数据实体的状态。因此,模型的方法calculateSalary()可能是对salary属性进行操作(增加、减少、计算等)的不错选择。

这是 OOP 中的常用方法。当你有一个类Carspeed = 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 回答