Skip to content

Latest commit

 

History

History
42 lines (36 loc) · 1.18 KB

07-pt.md

File metadata and controls

42 lines (36 loc) · 1.18 KB

'this'

A palavra reservada this é um objeto de contexto, e representa o contexto onde o código atual está sendo executado. Dependendo de onde ou como ele for usado, o seu valor pode mudar.

let user = {
  name: 'John',
  age: 31,
  email: '[email protected]',
  city: 'Sao Paulo',
  blogPosts: ['Chicken Potpie', '4 mashed potato recipes'],
  login: function () {
    console.log('User logged in')
  },
  logout: function () {
    console.log('User logged out')
  },
  logBlogPosts: function() {
    //a forma de acessar as propriedades é através da palavra `this`

    this.blogPosts.forEach(post => {
      console.log(post)
    })
  }
}

user.logBlogPosts()
// Chicken Potpie
// 4 mashed potato recipes

Repare que é preciso usar function declarations para que o this referencie o objeto no qual o método for criado.

O this funciona de uma forma diferente dentro de uma arrow function. O valor do this referencia o objeto no ponto da invocação do método.

Mas para que a sintaxe do function declaration possa ser reduzida, existe essa alternativa, removendo a palavra function e os dois pontos:

let user = {
  login () {
    console.log('User logged in')
  }
}