Bind
JavaScript
var log = function (msg) { console.log(msg); };
function checkIsInNumericRange (x, y, value) {
if (isNaN(value))
//typeof value !== 'number')
return false; // may be error???
else
return (value >= x && value <= y);
}
log('Checking range with 3 arguments. Range 5-10');
log( '11: '+checkIsInNumericRange(5,10,11) );
log( '7: '+checkIsInNumericRange(5,10,7) );
// we can have several clones of one function with bounded arguments and/or context
var isIn5to10Range = checkIsInNumericRange.bind(null, 5, 10);
log('Checking range with 1 argument. Range 5-10');
log( '7: '+isIn5to10Range(7) );
log( '13: '+isIn5to10Range(13) );
var isIn50to100Range = checkIsInNumericRange.bind(null, 50, 100);
log('Checking range with 1 argument. Range 50-100');
log( '70: '+isIn50to100Range(70) );
log( '13: '+isIn50to100Range(13) );
// http://habrahabr.ru/post/199456/