【发布时间】:2012-11-07 14:47:06
【问题描述】:
由于性能和其他问题,我想将我的代码拆分为单独的函数,就像以前它只是一个大的“.ready”函数一样。
我是 javaScript/jquery 的新手,但我想我会自己尝试一下。我已经完全按照我认为的方式完成了,但是我的控制台告诉我事情是未定义的,所以我猜我的事情超出了范围。我已经更详细地阅读了它,但仍然没有得到任何地方。
我的代码目前工作正常,但我想养成干净编码的习惯。有人可以指出我哪里出错了,这样我就可以继续自己了?
这是我到目前为止的一个例子
//Global variables
var randomWord = [];
var listOfWords = [];
var populationNumber = [];
var attemptNumber = [];
var completionNumber = [];
var gridSize = [];
generateGrid();
startMusic();
randomizeReward();
//Click event to start the game
$(".start-btn-wrapper").click(function () {
startplay();
});
//Click event to restart the game
$(".restart-btn").click(function () {
restartplay();
});
谢谢
小提琴:http://jsfiddle.net/QYaGP/
摆弄 HTML:http://jsfiddle.net/QYaGP/1/
【问题讨论】:
-
在没有 HTML 的 jsfiddle 中不是一个完整的工作示例,但我的直接猜测是:您的“全局范围”变量仅对就绪状态是全局的。 ready 之外的函数无法访问这些变量。将它们移到 jquery
ready函数上方,这样它们就真正是全局的,并且其他函数可以访问它们。 -
好的,我会试试 Eli Gassert
-
了解 JavaScript 变量作用域并阅读 functional programming
-
没什么区别我害怕@EliGassert
-
将 HTML 添加到 jsfiddle 以使其成为一个功能示例,这样我们就可以真正看到发生了什么。 JS 太多,无法仅通过视觉解析并确定问题。
标签: javascript jquery oop function