Sortowanie tablicy niestandardowych obiektów w JavaScript

Powiedz, że mam tablicę obiektów pracowników:

var Employee = function(fname, age) {
    this.fname = fname;
    this.age = age;
}

var employees = [
    new Employee("Jack", "32"),
    new Employee("Dave", "31"),
    new Employee("Rick", "35"),
    new Employee("Anna", "33")
];


W tym momencieemployees.sort() nic nie znaczy, ponieważ interpreter nie wie, jak sortować te niestandardowe obiekty. Więc przechodzę w mojej funkcji sortowania niestandardowego.

employees.sort(function(employee1, employee2){
    return employee1.age > employee2.age;
});


Terazemployees.sort() działa elegancko.

Ale co, jeśli chciałbym również kontrolować, które pole ma być sortowane, przekazując je w jakiś sposób w czasie wykonywania? Czy mogę zrobić coś takiego?

employees.sort(function(employee1, employee2, on){
    if(on === 'age') {
        return employee1.age > employee2.age;
    }
    return employee1.fname > employee2.fname;
});

Nie mogę go uruchomić, więc sugestie? Być może refaktoryzacja oparta na wzorach projektowych?

questionAnswers(3)

yourAnswerToTheQuestion