He jugado con jsperf.com y hallaron que la función prototipo es 40x más lento que "por defecto" función declarada.¿Por qué el prototipo funciona 40 veces más lento que la función declarada por defecto?
String.prototype.contains = function(s){ return !!~this.indexOf(s) }
= ops 220K/s
vs.
function isContains(str, s) { return !!~str.indexOf(s) }
ops = 8.5KK/s
P.S. Sé que la modificación de prototipo no es el mejor caso y se puede llamar 'parche de monos' :)
mira esto, afecta de cuerda y número de literales, pero no literales de matriz - http://jsperf.com/shoop-da-whoop –
solo cuando se agrega un prototipo a Clases conocidas. http://stackoverflow.com/questions/32847086/javascript-performance-of-extinging-string-prototype-is-abysmal-vs-static-funct – Omeriko