4
respostas

[Dúvida] Função com parâmetros

Olá td bem? Gostaria de entender como faço para fazer uma funcao com parametros, pois tentei fazer e nao consegui. fiz assim : function move_cars(x, vx){ x -= vx; if(x < -50){ x = 600; } }

após isso tentei, chamar na funcao draw para cada carro distinto que tinha criado, porem nao funcionou.

4 respostas

salve Anderson, beleza? o que acontece se você tentar da seguinte forma:

function move_cars (x, vx) { if (x < -50) { x = 600} else { x -= vx} }

de qualquer forma deixo minha recomendação de leitura do diagrama de sintaxe de Douglas Crockford, abraço

Oi, Anderson.

Você está tentando modificar uma varável externa.

Isso não vai acontecer passando a variável como parâmetro

let x = 100;
let vx = 5;

function move_cars(x, vx) { 
    x -= vx; 
    if (x < -50) { 
        x = 600; 
    } 
}

move_cars(x, vx);

console.log(x, ' e ' , vx); // 100 e 5

// Nada mudou, pois na move_cars, x e vx, recebem os valores, mas são variáveis independentes

// Você poderia passar apenas o vx. Ex.: function move_cars(vx). 

// Assim funciona

Melhor seria usar os nomes das variáveis como: xCarro e velocidadeCarro

Regra básicas para dar nome a variáveis e funções

  1. Um nome de variável deve descrever a entidade que representa, ou seja, ele tem que ser auto descritivo.
  2. Ao escrever o código, priorize a facilidade de leitura, não a de escrita. Passamos muito mais tempo lendo o código do que escrevendo, então, ao escrever o código, priorize a facilidade de leitura e não a descrita.
  3. Use padrões consistentes em todo o projeto. O mais usado é o camelCase (a primeira palavra minúscula e as palavras subsequente começar com maiúscula)

Olá pessoal, obrigado pelas sugestoes e respostas. Creio, q o Luis chegou no ponto q nao tinha compreendido. Tentei modificar uma variavel externa, logo como posso modificá-la? Devo usar ponteiros para isso?

Os tipos number, string, undefined, null, boolean são Tipos Primitivos. Não são passados por referência.

Já os tipos object, function, array, regex e companhia, são Objetos. Esses são por referência, ou ponteiro se preferir.

No seu caso, use apenas:


let x = 100;
let vx = 5;

function move_cars() { 
    x -= vx; 
    if (x < -50) { 
        x = 600; 
    } 
}

move_cars();