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 =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";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 =Em seguida, adicionaremos um método getter “GetName"Para recuperar o"estudante.nome" valor da propriedade:
getName: function ()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;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 ()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 ()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 ());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.