Сортировка массива пользовательских объектов в JavaScript

Скажем, у меня есть массив объектов Employee:

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")
];


С этой точки зрения,employees.sort() ничего не значит, потому что интерпретатор не знает, как сортировать эти пользовательские объекты. Так что я передаю свою собственную функцию сортировки.

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


Сейчасemployees.sort() работает денди.

But what if I also wanted to control what field to be sorted on, passing it in somehow during runtime? Могу ли я сделать что-то подобное?

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

Я не могу заставить его работать, поэтому предложения? Возможно, дизайн рефакторинга на основе шаблонов?

Ответы на вопрос(3)

Ваш ответ на вопрос