浏览器声称JS函数是“未定义的”,但是如果我从命令行运行它就可以了

时间:2012-01-08 19:14:02

标签: javascript function call scope

我刚刚开始使用Javascript,尝试构建一个Jeopardy游戏,而我正试图从另一个函数中调用一个函数。在我的网站上,您单击此按钮:

<input type="button" value="Build My Jeopardy! Game" onclick="drawBoard()">

哪个运行此功能:

function drawBoard() {

    formtoVariables();

    document.getElementById('body').innerHTML = '<center><h1>Jeopardy!</h1><div id="screen"><table id="board"><thead><td id="cat1" value="cat1"></td><td id="cat2"></td><td id="cat3"></td><td id="cat4"></td><td id="cat5"></td></thead><tr><td id="r1c1"></td><td id="r1c2"></td><td id="r1c3"></td><td id="r1c4"></td><td id="r1c5"></td></tr><tr><td id="r2c1"></td><td id="r2c2"></td><td id="r2c3"></td><td id="r2c4"></td><td id="r2c5"></td></tr><tr><td id="r3c1"></td><td id="r3c2"></td><td id="r3c3"></td><td id="r3c4"></td><td id="r3c5"></td></tr><tr><td id="r4c1"></td><td id="r4c2"></td><td id="r4c3"></td><td id="r4c4"></td><td id="r4c5"></td></tr><tr><td id="r5c1"></td><td id="r5c2"></td><td id="r5c3"></td><td id="r5c4"></td><td id="r5c5"></td></tr></table></div></center>';

    fillBoardWithText();

};

我遇到的问题是formToVariables() - 浏览器给我这个错误:

  

ReferenceError:未定义formtoVariables

但是,如果我在Chrome中打开控制台并输入

formToVariables();

该功能运行。我认为这个问题可能与范围有关 - 我可以自己调用formToVariables(),但是由于某种原因,drawBoard()无法访问它。知道为什么会这样吗?或者问题与其他问题有关吗?

2 个答案:

答案 0 :(得分:3)

你的t是小写而不是资本:

formtoVariables();

应该是:

formToVariables();

由于Javascript区分大小写,因此它们是两个不同的函数名称。第二个是定义的,第一个不是。

答案 1 :(得分:0)

JavaScript区分大小写。 formToVariables!= formtoVariables