Encapsulamento em JavaScript | Explicado

Encapsulamento em JavaScript | Explicado
JavaScript é uma poderosa linguagem de script orientada a objetos que pode ser utilizada para o desenvolvimento de aplicativos complexos. Com um aumento na complexidade da implementação, a necessidade de manter o código é maximizada. ““Encapsulamento”É um dos princípios louváveis ​​de Programação orientada a objetos(OOP) que auxilia a esse respeito.

Com a ajuda do encapsulamento, você pode facilmente vincular o dados ou uma única unidade para os métodos que estão executando algumas operações. Também permite validar e controlar o fluxo de dados em um aplicativo JavaScript.

Este artigo explicará o encapsulamento em JavaScript com a ajuda de exemplos adequados. Então vamos começar!

Encapsulamento em JavaScript

Encapsulamento em JavaScript é uma metodologia usada para ocultando informações. É baseado no conceito de que as propriedades do objeto não devem ser expostas publicamente ao mundo exterior. A implementação do encapsulamento em JavaScript impede o acesso às variáveis ​​adicionando entidades públicas dentro de um objeto, que os chamadores podem usar para obter resultados específicos.

Exemplo: Implementando o encapsulamento em JavaScript

Primeiro de tudo, criaremos um objeto JavaScript chamado “estudante" tendo uma "nome" propriedade:

var aluno =
Nome: "Alexander",
;

Na próxima etapa, imprimiremos o valor inicial do “nome" propriedade:

console.log ("O nome do aluno é:"+ aluno.nome);

Então, vamos modificar o “estudante.nome”Valor da propriedade e utiliza novamente o“console.registro()”Método para exibi -lo no console:

estudante.name = "max";
console.log ("O nome do aluno é:"+ aluno.nome);
estudante.name = "Paul";
console.log ("O nome do aluno é:"+ aluno.nome);

Saída

Como você pode ver, tudo está funcionando perfeitamente de acordo com a lógica adicionada. No entanto, um problema surgirá quando um usuário inserir um valor inteiro para o “estudante.nome" propriedade.

Exemplo: Validando dados com métodos de encapsulamento em JavaScript

Uma variável JavaScript pode conter um valor de qualquer tipo de dados; portanto, para resolver o problema mencionado, precisamos limitar a gama de caracteres legais para o “nome" valor da propriedade. Para esse fim, utilizaremos um Expressão regex ““/\ d+/"Isso manterá um cheque em"Uma ou mais ocorrências dos caracteres dígitos (0-9)““. Esta expressão regex será adicionada em um novo método de setter, “nome do conjunto”, Que realiza mais testes:

var aluno =
Nome: "Alexander",
setName: function (value)
var expressão = novo regexp (/\ d+/);
if (expressão.teste (valor))
console.log ("nome inválido é inserido");

outro
esse.nome = valor;

Em seguida, adicionaremos um método getter “GetName"Para recuperar o"estudante.nome" valor da propriedade:

getName: function ()
devolver isso.nome;

;
console.log (aluno.getName ());
estudante.setName ("max");
console.log (aluno.getName ());
estudante.setName (34);
console.log (aluno.getName ());

Agora, se a declaração “expressão.teste (valor)”Avalia ser“verdadeiro,”Então, uma mensagem será exibida na janela do console, afirmando que“O nome inválido é inserido", Caso contrário, o"valor”Passado como um argumento será atribuído ao“nome" propriedade:

Realizamos com sucesso a validação usando uma expressão regex no método do setter, mas nosso programa não está totalmente encapsulado. Isso é porque o “nome”A propriedade é declarada globalmente, o que permite ao chamador acessar e modificar seu valor:

estudante.nome = 34;
console.log (aluno.getName ());

A saída acima mencionada mostra que, quando acessamos diretamente o “nome"Propriedade do"estudante“Objeto, a validação não acontece e“34”É definido como o valor da propriedade. Esta ação prova que, se a propriedade de um objeto estiver disponível globalmente, ela poderá ser acessada facilmente, o que corre o risco da segurança dos dados.

Encapsulamento em JavaScript usando o escopo da função

Em vez de expor as propriedades do objeto; Precisamos escondê -lo de fora. Para fazer isso, você pode usar o “var”Palavra -chave para definir uma propriedade privada e incluí -la no escopo de uma função.

Exemplo: encapsulamento em javascript usando o escopo da função

Na sequência "newfunc () ” Definição, “x”É uma variável privada que pode ser acessada no corpo da função:

função newfunc ()

var x = "linuxhint.com ";
console.log (x);

console.log (x);

A execução do código fornecido mostra um erro porque “x"É definido no"newfunc ()”E estamos acessando -o em termos de escopo global:

Da mesma forma, adicionando “nome”Como uma variável privada dentro do“normatizador”O método restringirá seu acesso direto. Nesse cenário, o “nome”A variável não pode ser utilizada fora do“normatizador”Escopo de método, o que significa que“getter”O método não pode acessá -lo também.

Usando "FechamentosӃ a maneira mais simples e elegante de implementar o encapsulamento em JavaScript.

Encapsulamento em JavaScript usando fechamentos

Dentro da função pai, “Fechamentos”Permita que uma função utilize a variável local de outra função.

Por exemplo, temos uma variável privada “nome“, Que pode ser acessado por ambos os métodos“GetName" e "nome do conjunto”Dentro do escopo da função. Como resultado, sempre que a função anônima é invocada, deve devolver o objeto interno e atribuí -lo a uma variável externa.

Exemplo: encapsulamento em javascript usando fechamentos

Neste exemplo, quando invocamos o “nome do conjunto()" e "getName ()”Funções, essa ação gera um novo escopo de fechamento de invocação. O escopo é então preservado retornando um ponteiro para o “estudante”Objeto:

var aluno = function ()
var name = "Alexander";
var expressão = novo regexp (/\ d+/);
retornar
setName: function (value)
if (expressão.teste (valor))
console.log ("nome inválido é inserido");

outro
nome = valor;

,
getName: function ()
Nome de retorno;

;
();

A função dada terminando com “()”Indica que estamos invocando a função e atribuindo o valor retornado ao“estudante" variável:

console.log (aluno.getName ());
estudante.setName ("max");
console.log (aluno.getName ());
estudante.setName (76);
estudante.nome = 76;
console.log (aluno.getName ());

Nesse caso, o encapsulamento é totalmente implementado usando Fechamentos, e os chamadores não podem acessar a variável privada diretamente:

Isso foi tudo sobre as informações básicas relacionadas a Encapsulamento em JavaScript; você pode explorá -lo ainda mais de acordo com nossos requisitos.

Conclusão

Usando Escopos de função e Fechamentos, Encapsulamento em JavaScript pode ser implementado facilmente. Com a ajuda do encapsulamento, você pode vincular os dados ou uma única unidade aos métodos que estão executando algumas operações nele. Também permite validar e controlar o fluxo de dados em um aplicativo JavaScript. Esta redação explicou o encapsulamento em JavaScript, juntamente com exemplos adequados.