Olá!
No código abaixo (simular ao da aula):
const campoValor = this.validacao.campo.toString();
const metodoValidacao = this.validacao.metodo;
console.log(campoValor, metodoValidacao); // retorna nome e isEmpty
Ele retorna no console o valor das chaves campo e método, argumentos do FormValidator:
new FormValidator({
campo: 'nome',
metodo: 'isEmpty'
})
Mas se fizermos assim:
const campoValor = state[this.validacao.campo.toString()];
console.log(campoValor); //retorna o valor digitado no input name nome
Ele retorna o valor digitado no input name nome.
E assim:
const metodoValidacao = validador[this.validacao.metodo];
console.log(metodoValidacao); //retorna a escrita da função isEmpty do módulo validator
Ele retorna a escrita da função isEmpty do módulo validator.
Eu imaginei que só era possível colocar números dentro dos colchetes em arrays, como no exemplo:
let array = ['alura', 'react'];
console.log(array[0]); //retorna 'alura';
Mas desconheço essa sintaxe mostrada na aula, onde um valor diferente de um número dentro dos colchetes, retorna o valor de uma chave de um objeto javascript. Eu procurei no google sobre esse tipo de estrutura e devo estar me expressando mal, porque não acho nada. Tento reproduzir o resultado em códigos de treino, mas não consigo também. Gostaria de encontrar uma documentação ou uma explicação sobre isso.
Alguém pode me ajudar?