Classes

  • this

Objetos não contem um escopo próprio.

Fazendo dessa forma, o this referencia o window, que é escopo global.

Arrow functions não se conectam com o this da mesma forma que function declaration.

const person = {
    name: "Nicollas",
    getName: () => {
        return this.name
    }
}

console.log(person.getName()) // undefined

Fazendo assim, funciona corretamente

const person = {
    name: "Nicollas",
    getName: function() {
        return this.name
    }
}

console.log(person.getName())  // Nicollas

Evitando o this

const person = {
    name: "Nicollas",
    getName: () => person.name
}

 console.log(person.getName()) 
  • Prototype

Em JavaScript, quando um objeto é criado, ele possui automaticamente uma propriedade que referencia um outro objeto. Esse outro objeto é chamado de prototype. Todo objeto em JavaScript herda propriedades e métodos do seu prototype ascendente. Ou seja, o objeto acessa propriedades e métodos do seu protótipo ascendente. Essas propriedades não pertencem ao objeto em si, mas sim ao prototype do objeto.

  • Desestruturação de objetos

const person = {
    name: 'Nicollas',
    age: 26
}

const { age } = person

console.log(age)  // 26

Se quiser renomear, pode-se utilizar:

const { age: idade } = person

console.log(idade)  // 26
  • JSON

{
    "nome": Nicollas,
    "idade": 26,
    "hobbies": ["Academia", "Ler"],
    "estudaJavascript": true
}
  • POO

class Person {
    constructor(firstName, lastName, age) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.age = age;
    }
}

const person = new Person('Joao', 'Da silva', 23);
console.log(person); // Person { firstName: 'Joao', lastName: 'Da silva', age: 23 }
  • super, constructor, extends

class Animal {
    constructor(name) {
        this.name = name
    }

    speak() {
        console.log(`${this.name} made some noise`);
    }
}

class Cat extends Animal {
    constructor(name) {
        super(name);
    }
}

const cat = new Cat('Ari');
cat.speak();
  • static

class Person {
    
    static speak() {
        console.log('Hello World!');
    }
}

Person.speak(); // Hello World!
  • get/set

Last updated