Это не сортировка, потому что вы указали ключи, к которым относятся переменные в массиве. Сортировка будет перемещать объекты только по целочисленным ключам. Вы должны увидеть свою работу по сортировке, если вы создадите свой массив следующим образом:
var players = [new Player(), new Player()];
хотя, конечно, это будет не очень эффективно, так как у вас нет ни оценки, по которой можно сортировать, ни способа их идентификации Это сделает это:
function Player(name, score) {
this.getName = function() { return name; }
this.getScore = function() { return score; }
this.setScore = function(sc) { score = sc; }
}
function comparePlayers(playerA, playerB) {
return playerA.getScore() - playerB.getScore();
}
var playerA = new Player('Paul', 10);
var playerB = new Player('Lucas', 5);
var playerC = new Player('William', 7);
var players = [playerA, playerB, playerC];
for (var i = 0; i < players.length; i++)
alert(players[i].getName() + ' - ' + players[i].getScore());
players.sort(comparePlayers);
for (var i = 0; i < players.length; i++)
alert(players[i].getName() + ' - ' + players[i].getScore());
Надеюсь, это поможет.