Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Classe x Função Construtora

Caro instrutor (a), boa tarde. Tudo bem?

Qual a diferença prática (além da notação - já que uma classe não é uma função) entre uma classe e uma função construtora? Ambas recebem atributos e métodos. Ambas instanciam um objeto. Ambas podem receber herança.

Obrigado.

3 respostas

Bom dia, colega.

Acredito que não há diferença prática, tendo em vista ambas fazem a mesma coisa (servem de base para a criação de objetos). É só uma forma diferente de fazer.

As classes foram implementada no JS justamente para facilitar para programadores vindos de linguagens OO, e hoje por uma questão de boas práticas são mais usada do que a função construtora.

Espero ter ajudado.

Abraço!

solução!

"As classes foram implementada no JS justamente para facilitar para programadores vindos de linguagens OO, e hoje por uma questão de boas práticas são mais usada do que a função construtora."

Javascript também é uma linguagem orientada a objetos e a utilização de classes não é por ser uma boa prática mas sim por que é uma forma mais popular em expressar a orientação a objetos devido a outras linguagens de mercado.

No geral as funções construtoras são mais flexíveis e poderosas do que a utilização de classes por que você pode compor objetos com mais facilidade e de uma forma mais clara, principalmente devido ao recurso de mixins e por serem simplesmente funções. As classes são apenas um açucar sintático para dar mais comodidade para quem vem de outras linguagens, mas em troca você perde um pouco de toda expressividade do JS.

Acredito que exista uma outra diferença que seja importante salientar que é as funções são Hoisted e as Class não são.

Abaixo um artigo da Alura sobre o tema de Hoinsting. https://www.alura.com.br/artigos/hoisting-no-javascript