Programación basada en prototipos

Programación basada en prototipos[1] es un estilo de programación orientada a objetos en el cual los objetos no son creados mediante la instanciación de clases sino mediante la clonación de otros objetos o mediante la escritura de código por parte del programador. De esta forma los objetos ya existentes pueden servir de prototipos para los que el programador necesite crear.

El original (y el más canónico) ejemplo de lenguaje prototipado es el lenguaje Self, desarrollado por David Ungar y Randall Smith. Sin embargo el paradigma sin clases está comenzando a popularizarse y ya ha sido implementado en lenguajes de programación como JavaScript, Pauscal, Cecil, NewtonScript, Ío, MOO, REBOL, Squeak y varios otros.

Comparación de los prototipos y modelos de clase

Objetos de clases:

  • Una clase definida por su código fuente es estática.
  • Representa una definición abstracta del objeto.
  • Cada objeto es una instancia de una clase.
  • El legado se encuentra en las clases.

Objetos prototipos:

  • Un prototipo definido en su código fuente es mutable.
  • Es en sí mismo un objeto, así como otros.
  • Tiene una existencia física en la memoria.
  • Puede ser modificado y llamado.
  • Debe ser nombrado.
  • Un prototipo puede ser visto como un modelo ejemplar de una familia objeto.
  • Un objeto hereda propiedades (valores y métodos) de su prototipo.
Other Languages