Javascript document.getElementById("name") 返回

Javascript document.getElementById("name") returning

我已经搜索了我的问题的答案,但据我所知,没有找到任何真正符合它的答案。

我这里有两块 Javascript 用于在网络浏览器中创建一个简单的 2d 游戏。

var myGamePiece;

var game = {

    canvas : document.getElementById("game-screen"),

    start : function(){
        this.context = this.canvas.getContext("2d");
    }
}

function startGame(){
    game.start();
}

还有这个:

var myGamePiece;

var game = {

    start : function(){

        this.canvas = document.getElementById("game-screen");
        this.context = this.canvas.getContext("2d");

    }
}

function startGame(){
    game.start();
}

第一个代码片段不起作用。当我尝试获取上下文时,canvas 为 NULL。我想知道为什么?我明白为什么它在第二个中起作用,好吧,我想我明白了。它在函数中蜂鸣 运行。第一个中的 canvas 属性是否不像第二个代码片段中的 'run' 那样?

评论和提示表示赞赏! :D

您的第一个代码在 var game 声明中立即调用 document.getElementById("game-screen")

这可能是 运行 元素存在之前。