Binding it to the array prototype has its benefits though. Consider....
//https://github.com/MrOutput/learning/blob/master/js/binary_search.js
Array.prototype.bsearch = function (fn) {
var low, mid, high;
low ^= low;
high = this.length - 1;
while (low <= high) {
mid = (low + high) >> 1;
var cmp = fn(this[mid]);
if (cmp < 0) {
high = mid - 1;
} else if (cmp > 0) {
low = mid + 1;
} else {
return mid;
}
}
return -1;
};
var FIND = 100;
var arr = [ 9, 8, 10, 100, 60, 1 ];
var i = arr .sort((a, b) => a - b).bsearch(n => FIND - n);
console.log('FOUND AT', i);