Я играл с jsperf.com и обнаружил, что прототипная функция в 40 раз медленнее , чем объявленная функция "по умолчанию".
String.prototype.contains = function(s){ return !!~this.indexOf(s) }
= 220 Кбит / с
против
function isContains(str, s) { return !!~str.indexOf(s) }
= 8,5 тыс. Операций в секунду / с
Вот тестовый пример jsperf
P.S. Я знаю, что модификация прототипа не лучший вариант и может быть названа 'monkey patching':)