JavaScript中未定义的函数消息

Function not defined message in JavaScript

本文关键字:函数 消息 未定义 JavaScript      更新时间:2023-09-26

我正在用JavaScript和html5构建一款游戏。我想让我的首页显示一些文本,然后当我按下任何按钮假设如果p,那么实际的游戏开始。

我在这个例子中使用了flag在两个函数之间切换,一个带来首页,另一个实际上是开始游戏。下面是我的代码:

var flag1 =true;
function init() 
 {
  canvas = document.getElementById('canvas');
  region = canvas.getContext('2d');
  if(flag1==true)
   {
    front();
   }
  else
   {
    start();
   }  
 }
function front()
 {
   document.write("press p to play");
   document.onkeydown = function(event) 
   {
     var keyCode; 
     if(event == null)
    {
     keyCode = window.event.keyCode; 
    }
    else 
    {
    keyCode = event.keyCode; 
    }
    switch(keyCode)
    {
       case 80:
       flag1=false;
       init();
       break;
    
       default: 
       break;
     }
 }
 }
 function start()
 {
  *************
   *********
  *********
 }

每当我按p,即

时,这段代码在控制台中给出错误。

init()没有定义

谁能解决这个问题?

答:http://jsfiddle.net/morrison/HrRD6/

指出:

    如果你已经找到了canvas,那么再找它就没有意义了。将画布存储到lib中。
  • 使用库风格的函数。这有助于避免命名冲突。
  • 整理代码。我经常使用jsfiddle,所以我在这里运行它,或者你可以尝试formatjavascript或javascriptbeautifier。

init()在chrome中为我运行。您使用的是哪种浏览器?代码的作用域是什么?

此外,据我所知,如果JavaScript没有像这样缩进,可能会被错误解析:

if (bool) {
  // stuff
}