1
어디에서 예를 들어 계산 직원 급여에 대한 몇 가지 계산을 넣을 수 있습니까? 필요한 외부 파일을 사용해야합니까, 아니면 모델이나 컬렉션 또는 뷰를 사용할 수 있습니까?Backbonejs - 계산은 어디에 두는가?
어디에서 예를 들어 계산 직원 급여에 대한 몇 가지 계산을 넣을 수 있습니까? 필요한 외부 파일을 사용해야합니까, 아니면 모델이나 컬렉션 또는 뷰를 사용할 수 있습니까?Backbonejs - 계산은 어디에 두는가?
모델의 속성은 데이터 엔터티 (Employee)의 상태를 나타냅니다. 그 메소드는 데이터 엔티티의 상태를 변경해야합니다. 따라서 모델 calculateSalary()
의 방법은 salary
속성 (증가, 감소, 계산 등)으로 작동하는 좋은 선택이 될 수 있습니다.
OOP에서 일반적인 접근 방식입니다. speed = 0
이있는 Car
클래스가있는 경우 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
'모델' – Henry