Objetos em Javascript — Parte 1
Esse post é o primeiro post de uma série de posts sobre a minha jornada de aprendizado. Ele não tem pretensão de ser um tutorial, mas apenas um pequeno registro do que eu aprendo todos os dias.
Estou aprendendo Javascript, pois quero me tornar um Desenvolvedor Web. Tenho noções básicas de coisas que aprendi na faculdade, como C, C++, Python e um pouco do paradigma de orientação a objetos. O que me motivou a começar a escrever foi um vídeo que chegou até mim pelo Training Center.
O que estou utilizando atualmente como ferramenta para estudar são os exercícios e desafios do FreeCodeCamp, além de utilizar o livro Eloquent Javascript, sobre o qual vou falar agora.
Prototypes
Estou no capítulo “The Secret Life of Objects”. Neste capítulo, ele fala sobre um conceito que me chamou a atenção, que é o de Prototype.
Prototypes, ele nos explica, são uma espécie de plano B para o objeto. Caso você chame alguma propriedade que o objeto não tenha, ele vai usar o prototype daquele objeto para isso.
Um exemplo que ele nos dá é o seguinte:
var empty = {};
console.log(empty.toString);
// → function toString(){…}
Ele também nos diz que o objeto Object.Prototype é o prototype de todos os objetos no Javascript. Ele seria a grande maẽzona(mais para tatataravó) da família de objetos.
Muitos objetos não tem como prototype direto o Object.Prototype, mas outro objeto, que tem suas próprias propriedades. E o prototype desses outros objetos quase sempre recai no Object.Prototype.
Constructors
Chamar uma função com um new na frente faz com que a função seja tratada como um constructor. Esse constructor cria uma objeto. O objeto criado por um constructor é uma instance desse constructor. No livro, ele nos dá como exemplo:
function Rabbit(type) {
this.type = type;
}var killerRabbit = new Rabbit(“killer”);
var blackRabbit = new Rabbit(“black”);
console.log(blackRabbit.type);
// → black
var killerRabbit = new Rabbit(“killer”)/* cria uma instância do objeto com a propriedade type = “killer”.*/
Esse constructors tem uma propriedade prototype que tem como default o valor Object.Prototype.
Overriding Properties
As propriedades de um objeto podem ser sobrescritas.
Um exemplo do livro:
Rabbit.prototype.teeth = “small”;
console.log(killerRabbit.teeth);
// → small
Ou seja: A propriedade teeth dos nossos Rabbits sempre serão “small”. É como se fosse um default.
Mas você pode sobrescrever isto. Por exemplo:
killerRabbit.teeth = “long, sharp, and bloody”;
console.log(killerRabbit.teeth);
// → long, sharp, and bloody
console.log(blackRabbit.teeth);
// → small
Sobrescrever propriedades é algo bem útil. Por exemplo: É isso que faz o método toString() ser diferente entre as diferentes classes. Se você chamar ele em um Array e em um Number, terá resultados bem diferentes.
Continue acompanhando
Esse foi meu primeiro post. Espero que você tenha curtido. Qualquer sugestão e/ou críticas, só falar :)
Continue seguindo o meu trajeto, vou tentar fazer posts novos todas semanas(menos em épocas de prova hahaha).
Se você ainda não conhece o Training Center, de uma olhada nesse artigo.
Se curtiu essa dica, da um like aqui no Medium e compartilhe esse post nas redes sociais.