Polimorfismo
La posibilidad de llamar métodos en común de diferentes objectos sin alterar el resultado.
function fruta(ancho, alto) {
return {
descripcion() {
console.log('A. Dimensión de Fruta: ancho-' + ancho + ' / alto-' + alto);
},
};
}
function mercado(ancho, alto, precio) {
return {
descripcion() {
console.log('B. Dimensión de Fruta: ancho-' + ancho + ' / alto-' + alto + ' / $' + precio);
},
};
}
function mostrarDescripcion(obj) {
if (typeof obj.descripcion === 'function') {
obj.descripcion(); /* <-- Polimorfismo */
}
}
const miFruta = fruta(50, 60);
const miMercado = mercado(50, 60, 25);
mostrarDescripcion(miFruta); // A. Dimensión de Fruta: ancho-50 / alto-60
mostrarDescripcion(miMercado); // B. Dimensión de Fruta: ancho-50 / alto-60 / $25