Categorias
Estudos

21 coisas sobre Orientação de Objetos em JavaScript que aprendi com o freeCodeCamp

Continuando os estudos de JavaScript, passei a parte de Orientação a Objetos no freeCodeCamp.

Essa parte me deixou meio “confuso” principalmente por que estou lendo a série e livros “You Don’t Know JS” que meio que vai contra essa idéia de usar “orientação a objetos” em JS, já que no JS você não tem herança, polimorfismo e etc.

No JavaScript, você não precisa de criar classes e herda-las, mas sim, simplesmente fazer uma cópia do objeto que precisa com Object.create().

Ainda vou ter que explorar melhor esses conceitos…

JavaScript: Objetos são feitos de?

Propriedades

JavaScript: Como se acessa uma propriedade “prop” de um objeto “obj“?

obj.prop

JavaScript: Como se chama uma função dentro de um objeto?

Um método

JavaScript: Como se declara um método “meuMetodo” dentro do objeto “obj“?

let obj = {
  meuMetodo: function() { ... }
}

JavaScript: Funções que setam variáveis internas de um objeto são chamadas de?

Construtoras

JavaScript: Um objeto é criado/instanciado com qual keyword?

new, ex: hound = new Dog();

JavaScript: Como se verifica se um objeto é uma instância de um construtor/classe?

instanceof, ex: obj instanceof constructor

JavaScript: Como se define uma propriedade/método para todas as instâncias de um construtor/classe?

Usando prototype, como em, Dog.prototype.numLegs = 4;

JavaScript: O que a propriedade constructor de um objeto retorna?

Ela retorna o nome do objeto que deu origem ao objeto que você está pesquisando.

JavaScript: Como se altera o prototype de um objeto?

Obj.prototype = { ... }

JavaScript: Quando você muda o prototype de um objeto, qual propriedade deve ser setada novamente?

constructor

JavaScript: Qual função verifica se um prototype vem de uma classe/objeto?

isPrototypeOf

JavaScript: No código
function Bird(name) {
this.name = name;
}
let duck = new Bird("Donald");

Qual é o supertype de duck?

Bird

JavaScript: Como é chamado o objeto/função/classe-pai?

supertype

JavaScript: Como é chamado a variável que herda de um objeto/função/classe?

subtype

JavaScript: Qual a maneira de se criar um objeto para ser herdado?

Object.create(Obj.prototype);

JavaScript: Como se cria um objeto “Dog” que herda as propriedades do objeto “Animal”?

Dog.prototype = Object.create(Animal.prototype);

JavaScript: Como um “ChildObject” herda os métodos de um “ParentObject”?

ChildObject.prototype = Object.create(ParentObject.prototype);

JavaScript: O que é um mixin?

É uma função que recebe um objeto e seta um método para ele, podendo ser usando em vários objetos. ex: função fly sendo usando nos objetos, airplane e bird.

JavaScript: Como se declara uma variável privada dentro de um objeto?

Não se declara a variável com this.

JavaScript: Um método dentro de um objeto tem acesso a uma variável privada?

Sim, isso se chama closure.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *