Cómo extender prototipos con JavaScript

Cómo extender prototipos con JavaScript

Uno de los puntos de conflicto ideológicos del primer marco de JavaScript fue la extensión de prototipos sobre funciones de envoltura. Frameworks como MooTools y Prototype prototipos extendidos, a diferencia de jQuery y otros frameworks más pequeños. Cada uno tenía sus beneficios, pero en última instancia, todos estos años después, sigo creyendo que la capacidad de extender prototipos nativos es una característica masiva de JavaScript. ¡Veamos qué fácil es fortalecer cada instancia de una primitiva extendiendo los prototipos!

Cada JavaScript nativo, como Number, String, Array, Objectetc. un prototype. Cada método en un prototype es heredado por cada instancia de este objeto. Por ejemplo, podemos proporcionar cada `Array ejemplo con un unique método mediante la ampliación de su prototipo:

Array.prototype.unique = function() {
  return [...new Set(this)];
}

['1', '1', '2'].unique(); // ['1', '2']
new Array('1', '1', '2').unique(); // ['1', '2']

Tenga en cuenta que si bien también puede garantizar la encadenabilidad devolviendo this:

['1', '1', '2'].unique().reverse(); // ['2', '1']

La mayor crítica a la extensión de prototipos siempre ha sido la colisión de nombres donde la eventual implementación de la especificación es diferente de la implementación del marco. Si bien entiendo este argumento, puede combatirlo anteponiendo nombres de funciones. Agregar superpoderes a un prototipo nativo para que cada instancia los tenga es tan útil que nunca le diría a alguien que no extienda un prototipo. #MooToolsFTW.

Si quieres conocer otros artículos parecidos a Cómo extender prototipos con JavaScript puedes visitar la categoría Tutoriales.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Esta página web utiliza cookies para analizar de forma anónima y estadística el uso que haces de la web, mejorar los contenidos y tu experiencia de navegación. Para más información accede a la Política de Cookies . Ver mas