Getters e setters na classe JavaScript

Getters e setters na classe JavaScript

Em uma classe JavaScript, getters e setters são usados ​​para obter ou definir os valores das propriedades. ““pegar”É a palavra -chave utilizada para definir um getter Método para recuperar o valor da propriedade, enquanto “definir”Define um método setter para alterar o valor de uma propriedade específica. Quando queremos acessar uma propriedade do nosso objeto JavaScript, o valor retornado pelo método getter é usado e, para definir um valor de propriedade, o método do setter é chamado e depois passamos o valor como um argumento que queremos definir.

Este artigo discutirá Getters e Setters em JavaScript. Além disso, também demonstraremos exemplos relacionados ao uso da definição Getter e Setter na classe JavaScript. Então vamos começar!

Getters e setters na classe JavaScript

No exemplo abaixo, criamos um “Funcionário”Classe com um construtor. O construtor do “Funcionário”A classe inicializará o funcionário“nome”Para a sequência passada como um argumento:

ClassEmployee
construtor (nome)
esse.nome = nome;

Agora, criaremos um objeto de classe de funcionários chamado “funcionário" e adicione "Jack”Como nome:

Deixe funcionário = novo funcionário ("Jack");

Depois de fazer isso, podemos acessar o “nome"Propriedade do"funcionário”Objeto da seguinte maneira:

console.log (funcionário.nome);

A saída do programa acima é mostrada abaixo:

Às vezes, talvez você não queira acessar uma propriedade diretamente. É aí que o par de getter e setter chega à peça.

Exemplo 1: Getters e Setters na classe JavaScript

Para demonstrar o uso do getter e Setter, primeiro, criaremos um “Funcionário”Classe com uma“nome" propriedade:

ClassEmployee
construtor (nome)
esse.setName (nome);

Na próxima etapa, definiremos um “getName ()”Método que retornará o valor do funcionário“nome" propriedade:

getName ()
retornar este.nome;

Outro método, que vamos acrescentar é “nome do conjunto()”. O método setName () de nossa classe de funcionários tem um “novo nomeParâmetro. Este método removerá quaisquer espaços de branco do valor do “novo nome" E também fará uma exceção se você não tiver inserido nenhum nome:

setName (newName)
newName = newName.aparar();
if (newName === ")
lançar um nome de funcionário ';

esse.nome = newName;

Como chamamos de “nome do conjunto()”Método no construtor, então sempre que criarmos um“Funcionário“Objeto, o“nome”Passado como o argumento será tomado pelo método setName (). Em seguida, o construtor mudará o fluxo de controle para o método setName () e definirá os valores passados ​​como um argumento como “Funcionário”Nome do objeto:

Deixe funcionário = novo funcionário ('Jack Smith');
console.log (funcionário);

Você também pode invocar o criado “nome do conjunto()" e "getName ()”Métodos da seguinte maneira:

funcionário.setName ('William Smith');
console.log (funcionário.getName ());

As linhas de código acima dicas serão definidas “William Smith”Como o nome do“funcionário”Objeto. Então o "getName ()”O método informará sobre o nome do nome do funcionário valor da propriedade:

No exemplo fornecido, o método setName () e getName () estão funcionando como getter e setter .

Exemplo 2: Getters e Setters na classe JavaScript

Para definir getters e setters na classe JavaScript, o ES6 também oferece uma sintaxe específica. Para mostrar como usar isso, iremos para a aula de funcionários:

ClassEmployee
construtor (nome)
esse.nome = nome;

Em seguida, definiremos o método getter utilizando a palavra -chave “pegar”Que será seguido pelo nome do método. Outra coisa que gostaríamos de mencionar aqui é que o “nome”Propriedade da nossa“Funcionário”A classe será alterada para“_nome”Para evitar o conflito com o getter e o setter:

getName ()
retornar este._nome;

Para definir um método de setter, você deve adicionar o “normatizadorPalavra -chave antes de especificar o nome do método:

Definir nome (newName)
newName = newName.aparar();
if (newName === ")
jogue 'gentilmente insira o nome de um funcionário';

esse._name = newName;

Quando você atribuirá qualquer valor ao “nome”Propriedade de sua“Funcionário”Objeto de classe, JavaScript invocará o método do setter“nome()”:

funcionário.nome = 'Paul Max';

Em seguida, chamaremos o método Getter ao usar a sintaxe abaixo:

Deixe EmpName = funcionário.nome;

Agora, quando o intérprete JavaScript executará as linhas acima, ele verá a verificação de qualquer "nome"Propriedade na"Funcionário" aula. Ele procurará ainda qualquer método que vincule o “nome”Propriedade se não for encontrada. No nosso caso, o intérprete acessará o método getter e, depois de executá -lo, ele retornará o valor de “nome" propriedade:

Caso se você não tenha definido um método de setter em sua classe JavaScript, obterá um TypeError que indicará que você não pode definir a propriedade “nome" do "Funcionário”Objeto, como o“Funcionário”A classe tem apenas uma função getter:

Funcionário da classe
construtor (nome)
esse.nome = nome;

Get Name ()
retornar este._nome;

// sem método de setter

Deixe funcionário = novo funcionário ("Stephen Edward");
console.log (funcionário.nome);

Aqui, tentaremos mudar o nome do nosso “funcionário“Objeto; No entanto, não adicionamos nenhum método de setter em nossa classe:

funcionário.nome = 'Paul Smith';
console.log (funcionário.nome);

Como você pode ver, encontramos um erro de tipo enquanto tentamos definir o nome do nome da propriedade:

Conclusão

Usando as palavras -chave GET e Set, você pode definir facilmente os métodos Getter e Setter em uma classe JavaScript. O método getter retorna o valor da propriedade, enquanto, no método do setter, um argumento é passado para o método do setter, que atribui esse valor específico à propriedade do objeto JavaScript Class. Este artigo discutiu Getters e Setters em JavaScript. Além disso, também demonstramos exemplos relacionados à definição e uso do Getter e Setter na classe JavaScript.