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

Dúvida sobre objetos

Sei que a aula sobre objetos já passou faz algum tempo.(rsrsrs) Mas, ao pensar sobre conceitos, veio a dúvida:

Vi que a construção de um objeto em Java, Kotlin é muito diferente em JS.

Por que?

A maneira que o objeto é escrito em JS é object literal que está em contraste com objetos instanciados em classes(Java/Kotlin). Qual a maneira é mais eficiente? Por que é mais eficiente? Em quais condições devo escrever um objeto instanciados em classes e object literal? A maneira que é escrito é só por causa da linguagem? Por que Java/Kotlin e Javascript usam maneiras tão diferentes? É só por convenção ou tem de fato algum beneficio por trás?

Já agradeço pela ajuda! :)

2 respostas
solução!

Oie Diego, tudo bem com você?

Essas diferenças são por conta de serem linguagens de programação diferentes e por isso apresentam características diferentes, por exemplo o Java e o Kotlin são linguagens que precisam ser compiladas, já o JavaScript como o nome já diz, é um script, então ele precisa ser interpretado pelo navegador.

O Javascript inclusive possui 2 jeitos de criar uma classe, uma delas é com o "Object Literal" e a outra é uma maneira bem parecida com o Java e o Kotlin que é a partir de uma função de construção. Ambos os métodos criam objetos, mas geralmente são usados em finalidades diferentes.

Object Literal:

O objeto é criado a partir de um par de chaves "{}" e suas propriedades e métodos são todos públicos. Seu uso é recomendado em situações onde não podem existir mais de uma instância do objeto.

  • Exemplo:
var object_literal = {
  Moto: {
    quantidadeRodas: 2,
  },
};

Função de Construtor:

Um construtor é simplesmente uma função. Ela pode ser usada como uma função ou para instanciar um objeto utilizando a palavra reservada new. As funções construtoras são usadas para objetos que podem existir como múltiplas instâncias em uma mesma situação.

  • Exemplo:
var constructor = {
  Moto: function() {
    this.quantidadeRodas = 2;
  },
};

Caso tenha interesse em aprender mais, clique aqui para ver um artigo que aborda esse tema.

Espero que eu tenha ajudado, qualquer dúvida ou problema fico a disposição :)

Bons estudos!

Obrigado ajudou bastante.