Funções Construtoras!!!

Fala galera… Beleza?

Mais uma vez, um post fora do dia combinado. Mas esse assunto vem martelando em minha cabeça desde ontem, e achei que escrevendo poderia me ajudar a tirar isso da cabeça. Já falamos de função de callback, falamos de função arrow, e hoje vamos falar de mais um tipo de função no ES6. A função construtora.

O conceito de função construtora no JS é extremamente semelhante a classe do Java ou do C. Você pode até se perguntar, mas em JS não existe classe também? Existe sim, mas na verdade a classe do ES6 não é como uma classe em outras linguagens. A classe é na verdade uma função no JS. Sei que isso pode parecer algo sem sentido. Mas vamos por partes para ficar mais fácil de compreender.

Vamos escrever uma função construtora e falar mais sobre ela…

Captura de Tela 2018-03-20 às 10.17.21 AM.png

Eu criei uma função chamada Carro, note que escrevi Carro com c maiúsculo para diferenciar a função construtora das demais funções. Para tornar os parâmetros públicos, precisamos passar o this de cada um deles, por isso fazemos as linhas 2, 3 e 4. Quando vamos construir nossos novos objetos através da função construtora precisamos passar os parâmetros para ele. Tanto o nosso gol100 como a christine (espero que alguém compreenda a referencia), recebem a cor, modelo e ano como parâmetros.

Legal Marcus… Mas o que mais posso fazer com uma função construtora?

Podemos criar métodos e atributos para o nosso carro, assim como podemos fazer em uma classe. Vamos colocar nossos carros para disputar uma corrida… Vou modificar nossa função para que possamos fazer essa corrida!!!

Captura de Tela 2018-03-20 às 10.30.47 AM.png

Tirei a cor, modelo e ano do nosso carro e coloquei a velocidade máxima e a aceleração. Coloquei valores padrões para esse dois parâmetros. Para garantir que os dois carros estão parados na largada, deixei a velocidade atual de ambos como 0. Eles estão paradinhos!!! Para garantir que nenhum deles passe a velocidade máxima, fiz um condicional que garante isso e para visualizar a velocidade atual criei um método público getVelAtual. O nosso gol100 deixei com os valores padrões, já a christine é um carro mais potente, passei a velocidade máxima como 250 e a aceleração como 25. E aceleramos os carros. O gol só chegou a 20km, já a christine chegou a 50km.

Com apenas uma função, construimos dois objetos diferentes, com atributos diferentes e com métodos. Esse conceito é fundamental para que possamos falar de classes mais na frente. Espero que tenha ficado claro. Mas qualquer dúvida, crítica ou sugestão, deixem o comentário!

Anúncios

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão /  Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão /  Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão /  Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão /  Alterar )

Connecting to %s