Polyfills
Un polyfill es un script de código que sirve para emular una característica que un desarrollador necesita en un navegador cuando este no dispone de ella de forma nativa. En su mayoría, los polyfills están escritos en javascript, y nos permiten desarrollar apliaciones web centrados en nuevos estándares, pues suplen la carencia de los navegadores más antiguos en el momento de implementarlos.
El uso de polyfills invita a usar una detección de características del navegador, en lugar de comprobar su versión, puesto que con su uso únicamente habría que comprobar si el navegador, sea cual sea, y sea cual sea su versión, dispone de la cualidad que necesitamos en nuestro desarrollo, y de no ser así, usaríamos un polyfill que la emulara.
Este pequeño polyfill que sigue comprueba si el motor javascript del navegador implementa la función forEach, y en el caso de no ser así, la define para que pueda ser usada en el resto del código, de modo que podremos usarla en todo nuestro desarrollo.
if(Array.prototype.forEach === undefined) {
Array.prototype.forEach = function(callback, element) {
if(typeof(callback) !== "function") {
throw new TypeError(callback + " not function!");
}
var len = this.length;
for(var i = 0; i < len; i++) {
callback.call(element, this[i], i, this)
}
}
}
Si necesitas una característica reciente, que no está disponible aún en todos los navegadores, un polyfill es una buena solución, pero antes de escribir uno propio, no dudes en buscar en alguna de las bibliotecas de polifylls que ya existen, como, por ejemplo, modernizr, que se centra en facilitar remedios de este tipo para el estandar HTML5.