Немного поздно, но вы могли бы сделать следующее:
var dynamicCompare = function(a, b, compare){
//do lots of common stuff
if (compare(a, b)){
//do your thing
} else {
//do your other thing
}
}
dynamicCompare(a, b, function(input1, input2){ return input1 < input2;}));
dynamicCompare(a, b, function(input1, input2){ return input1 > input2;}));
dynamicCompare(a, b, function(input1, input2){ return input1 === input2;}));