Tive um momento, então, embora você já tenha aceitado uma resposta, pensei em contribuir com o seguinte:
Number.prototype.between = function(a, b) {
var min = Math.min.apply(Math, [a, b]),
max = Math.max.apply(Math, [a, b]);
return this > min && this < max;
};
var windowSize = 550;
console.log(windowSize.between(500, 600));
Demonstração JS Fiddle .
Ou, se você preferir ter a opção de verificar se um número está no intervalo definido, incluindo os pontos finais :
Number.prototype.between = function(a, b, inclusive) {
var min = Math.min.apply(Math, [a, b]),
max = Math.max.apply(Math, [a, b]);
return inclusive ? this >= min && this <= max : this > min && this < max;
};
var windowSize = 500;
console.log(windowSize.between(500, 603, true));
Demonstração JS Fiddle .
Editado para adicionar uma pequena alteração ao exposto acima, pois, conforme observado nos comentários,
... Function.prototype.apply()é lento! Além de chamá-lo quando você tem uma quantidade fixa de argumentos, é inútil…
valeu a pena remover o uso de Function.prototype.apply(), que produz as versões alteradas dos métodos acima, primeiro sem a opção 'inclusiva':
Number.prototype.between = function(a, b) {
var min = Math.min(a, b),
max = Math.max(a, b);
return this > min && this < max;
};
var windowSize = 550;
console.log(windowSize.between(500, 600));
Demonstração JS Fiddle .
E com a opção 'inclusiva':
Number.prototype.between = function(a, b, inclusive) {
var min = Math.min(a, b),
max = Math.max(a, b);
return inclusive ? this >= min && this <= max : this > min && this < max;
}
var windowSize = 500;
console.log(windowSize.between(500, 603, true));
Demonstração JS Fiddle .
Referências: