Para ficar ainda mais claro, veja um exemplo.
class Pessoa {
constructor(nome) {
// this é a variável de instância que vai guardar nome, que é o parâmetro passado para o construtor.
this.nome = nome;
}
}
let pessoa = new Pessoa('Flávio Almeida');
alert(pessoa.nome); // exibe Flávio Almeida
Consegue enxergar que nome
é o parâmetro do construtor, uma maneira de passarmos uma informação para a instância da classe assim que é criada? Isso é a mesma coisa nos métodos.
Se você não tivesse feito this.nome
você nunca conseguiria guardar na instância da classe o nome passado como parâmetro no construtor.
class Pessoa {
constructor(nome) {
this.nome = ''; // veja que não fiz nada com o parâmetro nome
}
}
let pessoa = new Pessoa('Flávio Almeida');
alert(pessoa.nome); // exibe branco
Isso é meio que padrão em vários linguagens. Veja um código em php
:
class MyClass {
public $param;
public function __construct($param) {
$this->param = $param;
}
}
Veja que $param foi recebido no construtor e que ele foi atribuído à $this->param
. Sendo assim, mais uma vez, isso não é exclusividade do JavaScript. Se você domina outra linguagem orientada à objetos, o procedimento é similar.