Javascript: objetos e funções ... Alguém pode explicar por que isso não funciona?

Dex

Estou testando um código e não parece funcionar. Alguém pode me dizer o que estou perdendo aqui, desde já agradeço!

javascript

var entity = function (type, w, h, c, kickSpeed, accuracy, power) {
    var entity = {};
    entity.type = type;
    entity.appearance = {
        w : w,
        h : h,
        c : c
    };
    entity.attribute = {
        kickSpeed : kickSpeed,
        accuracy : accuracy,
        power : power
    };
    return entity;
};

var spawnPlayer = function () {
    var player = {};
    entity("player", 50, 50, "green", 10, 1, 10);
    entity = player;
    ctx.fillRect(1, 1, player.appearance.w, player.appearance.h);
};
spawnPlayer();

O problema neste código é que ele não consegue encontrar o objeto player.appearance.

Patrick Helms

Você não está atribuindo a função de entidade que está retornando o valor à variável do player, portanto, nunca é definido. Você deve ler sobre escopos variáveis .

var entity = function (type, w, h, c, kickSpeed, accuracy, power) {
    var entity = {};
    entity.type = type;
    entity.appearance = {
        w : w,
        h : h,
        c : c
    };
    entity.attribute = {
        kickSpeed : kickSpeed,
        accuracy : accuracy,
        power : power
    };
    return entity;
};

var spawnPlayer = function () {
    var player = entity("player", 50, 50, "green", 10, 1, 10);
    ctx.fillRect(1, 1, player.appearance.w, player.appearance.h);
};
spawnPlayer();

Aqui está o JSfiddle, com um alerta para mostrar seu funcionamento.

https://jsfiddle.net/5u8bvst0/

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Alguém pode explicar por que isso não funciona?

JavaScript: alguém pode fazer isso funcionar ou explicar por que não funciona?

alguém pode explicar por que isso retorna o valor "else" e não o valor "then"?

Alguém pode me dizer por que isso não funciona? (seletor de nó javascript html)

Alguém pode explicar por que isso se mais em Python não estiver funcionando

Alguém pode me ajudar a entender por que `prefix` não funciona quando` sufixo` funciona e como consertar isso?

alguém pode explicar como isso funciona?

React / JavaScript, alguém pode explicar por que setState não parece atualizar corretamente o estado durante a função?

Alguém pode explicar, por que minha classificação não funciona corretamente?

Alguém pode explicar o que isso significa?

Alguém pode explicar o que isso significa

Alguém pode me explicar por que esse código não funciona?

Alguém pode me explicar por que esse código lisp não funciona?

Alguém pode explicar por que esse código if/else do brainfuck não funciona?

Javascript - alguém pode me explicar exatamente o que isso faz?

alguém pode me explicar por que as seguintes funções de duas setas são equivalentes?

Alguém pode explicar o 'isso' na função debounce em JavaScript?

Alguém pode explicar como seria um código como este e por que funciona?

Alguém pode explicar por que isso funciona para contar bits definidos em um inteiro sem sinal?

Alguém pode me explicar como a comparação de strings e números funciona em javascript?

RODBC-Alguém pode me dizer por que isso não funciona?

Alguém pode me dizer por que isso não funciona? C # XNA

Alguém pode me explicar por que o sub () / gsub () do awk funciona assim?

Alguém pode me explicar por que o método de ligação não funciona nesses exemplos

Por que preciso dessas chaves aqui? Alguém pode me explicar por que isso acontece?

Alguém pode me explicar como funciona essa função?

Alguém pode explicar por que esse código não funciona da maneira que eu quero?

Por que essa afirmação é falsa? Alguém pode explicar

Alguém pode explicar por que as saídas são diferentes em C e Java?