Javascript cuando usar prototipos

Me gustaría entender cuándo es apropiado usar métodos prototipo en js. ¿Deberían usarse siempre? ¿O hay casos en los que no se prefiere su uso y / o incurre en una penalización de rendimiento?

Al buscar en este sitio métodos comunes para el espacio de nombres en js, parece que la mayoría usa una implementación no basada en prototipos: simplemente usando un objeto o un objeto de función para encapsular un espacio de nombres.

Viniendo de un lenguaje basado en clases, es difícil no tratar de establecer paralelos y pensar que los prototipos son como "clases" y las implementaciones de espacios de nombres que mencioné son como métodos estáticos.

Respuestas a la pregunta(5)

Su respuesta a la pregunta