Ir ao conteúdo

Javascript Como evitar de usar variaveis globais?


Ir à solução Resolvido por Luís Roberto C. da Silva,

Posts recomendados

Postado

Segue abaixo o Código:

-------------> HTML

<!DOCTYPE html>
<html>

<script  src="js/main.js"></script>
<link rel="stylesheet" href="css/main.css">
<head>
</head>
<body>

<button onclick = "let more = new blocos(); more.more();">+</button>
<button onclick = "let less = new blocos(); less.less();">-</button>

<span id="container"></span>


</body>
</html>

-------------> Css

.retangulo{
    width:10%;
    height: 25px;
    margin: auto;
    padding: 10px;
}

-------------> Java Script


let array = [];
let i = 0;


const criar = (i, Color)=> {
  let objeto = {nome: "", color:""};
  let element = document.createElement("div");

  objeto = {nome: "nome"+i, color: Color};

 array.push(objeto);

 for(var j = 0 ; j < array.length ; j++){
   element.innerHTML = "<div class = retangulo style = background-color:"+array[j].color+">"+array[j].nome+"</div>";
   
   document.getElementById("container").appendChild(element);

 } 
}
class blocos{
  constructor(){};

  more(){
       let color = Math.floor(Math.random()*(10)+1);
      console.log(color);


      switch(color){
        case 1: // RED - VERMELHO
          // Criar um elemento -- OK
          // Criar um objeto do novo bloco -- OK
          // Dar um push no array -- OK
          // Atribuir um codigo HTML à esse elemento com innerHTML --  OK
          // Realizamos o appendChild -- OK
          criar(i,"red");
          i++;     
          break;
          case 2:
              criar(i,"blue");
              i++;
            break;
            case 3:
                criar(i,"green");
                i++;
              break;
              case 4:
                  criar(i,"teal");
                  i++;
                break;
                case 5:
                    criar(i,"purple");
                    i++;
                  break;
                  case 6:
                      criar(i,"violet");
                      i++;
                    break;
                    case 7:
                        criar(i,"pink");
                        i++;
                      break;
                      case 8:
                          criar(i,"maroon");
                          i++;
                        break;
                        case 9:
                            criar(i,"grey");
                            i++;
                          break;
                          case 10:
                              criar(i,"black");
                              i++;
                            break;
      }



  }
  
  less(){
       var list = document.getElementById("container");

       list.removeChild(list.childNodes[array.length-1]);
       

       array.pop();
i--;
  }
}

 

 

Eu estou com uma dúvida no meu código javascript:

  • É possível eu armazenar os valores da variave i e da variavel array sem ser em uma variavel global?

 

 

Postado
14 minutos atrás, Luís Roberto C. da Silva disse:

Se a variável é utilizada por mais de uma função então ela tem que ser global mesmo.

adicionado 1 minuto depois

Em C é que existe o conceito de ponteiro, que utiliza o endereço de memória da variável, não precisando der global para dar acesso a várias funções.

Pois é, em C aprendi que variavel global deve ser evitada. Mas pelo que eu to vendo em javascript não existe o conceito de ponteiros...

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!