Cómo Extender la Funcionalidad de Objetos y Arrays en Javascript (Prototipos)

Como ya debes saber, javascript es un lenguaje basado en prototipos, es decir, un lenguaje con objetos que heredan y extienden funcionalidad de otros objetos plantilla mucho más pequeños, de forma que el objeto padre contendrá todas las funcionalidades de los objetos plantilla.

Aunque este es un tema muy interesante, en este post nos enfocaremos en cómo extender o crear nuevas funcionalidades para objetos y arrays de javascript usando el parámetro prototype que javascript trae por defecto para poder personalizar objetos a tu manera.

Crear Nuevos Métodos para Objetos y/o Arrays

Para poder extender funcionalidades a nuestros objetos debemos hacer uso de Object.prototype y Array.prototype en el caso de los arrays.

Object.prototype.newMethod = function () { console.log(this) } const obj = { name: 'Francisco', lastname: 'Moncayo' } obj.newMethod()
Nuevo Método para Objetos

Aunque este es un ejemplo muy básico, puedes crear métodos más complejos que pueden ser usados para cualquier tipo de Objeto o Array tal y como te muestro a continuación.

Array.prototype.pluck = function (key) { return this.map(obj =>obj[key]) } const arr = [ { name: 'Francisco', lastname: 'Moncayo' }, { name: 'Javier', lastname: 'Nenger' } ] console.log(arr.pluck('name'))
Método Pluck para Arrays

Como puedes ver, el método pluck en javascript no existe, pero gracias al atributo prototype lo hemos creado y ahora es accesible a través de cualquier array.

De esta manera puedes extender o personalizar la funcionalidad de javascript a tu manera, sin tener que importar o llenar de plugins tu aplicación.

Sugerencias

Aunque esta es una funcionalidad muy poderosa de javascript, únicamente debes crear métodos que puedan ser usados en cualquier objeto independientemente de su estructura y separar los demás métodos en una carpeta dentro de tu aplicación.