Javascript quando usar protótipos

Gostaria de entender quando é apropriado usar métodos de protótipo em js. Eles sempre devem ser usados? Ou há casos em que o uso deles não é preferido e / ou incorre em uma penalidade de desempenho?

Ao pesquisar neste site métodos comuns para namespacing em js, parece que a maioria usa uma implementação não baseada em protótipo: simplesmente usando um objeto ou um objeto de função para encapsular um espaço para nome.

Vindo de uma linguagem baseada em classes, é difícil não tentar desenhar paralelos e pensar que os protótipos são como "classes" e as implementações de namespace que eu mencionei são como métodos estáticos.

questionAnswers(5)

yourAnswerToTheQuestion