Я написал функцию для сортировки своего класса карточек, и она работала точно так, как предполагалось.Затем я попытался сохранить функцию для повторного использования, но как только я это сделал, ее использование дало совершенно другие результаты.
myCards.sort(function(a, b){return card.CountRanks(fiveCards, true)[a.rank] != card.CountRanks(fiveCards, true)[b.rank] ? card.CountRanks(fiveCards, true)[b.rank] - card.CountRanks(fiveCards, true)[a.rank] : a.rank != b.rank ? b.rank - a.rank : b.suit - a.suit});
//Sorts exactly as intended
myCards.sort(card.pokerSort());
//Sorts quite differently
static pokerSort(){ //Within the card class
return function(a, b){return card.CountRanks(fiveCards, true)[a.rank] != card.CountRanks(fiveCards, true)[b.rank] ? card.CountRanks(fiveCards, true)[b.rank] - card.CountRanks(fiveCards, true)[a.rank] : a.rank != b.rank ? b.rank - a.rank : b.suit - a.suit};
}
В чем причина такого поведения?Есть ли способ сохранить функцию сортировки и заставить ее работать так, как я намереваюсь?