1

たとえば、従業員の給与を計算するための計算をどこに置くことができますか? 外部ファイルを使用する必要がありますか、それともモデル、コレクション、またはビューを使用できますか?

4

1 に答える 1

2

モデルのプロパティは、データ エンティティ (従業員) の状態を表します。そのメソッドは、データ エンティティの状態を変更することになっています。したがって、モデルの方法は、プロパティ (増加、減少、計算など)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 に答える