我是一位尝试使用 HTML5 的古老 C 程序员,但遇到了一些困难。我已经定义了一个全局函数“MouseHandler”,其中包含该函数的本地变量,包括 X 和 LastMsg。
一个函数 MoveHandler 在 MouseHandler 中,并在if (PostFunc)
我发现局部变量的值是一个断点:
- ABCStr 是“QQQ”
- DefStr 为“下跌 417,358”
- LastMsg 是“下跌 417,358”
- Mouse.LastMsg 是“QQQ”
- X 是 417
- LocalX 是 417
代码是:
var MouseHandler = function (canvas1, terraincvs1, PostFunc1)
{
// ...
var X, Y;
var LastMsg = "QQQ";
// ...
function MoveHandler ()
{
var ABCStr = Mouse.LastMsg;
var DEFStr = LastMsg;
var LocalX = X;
// ...
LastMsg = "Move " + X + ',' + Y;
if (PostFunc)
PostFunc ();
return { "LastMsg" : LastMsg }
}
cvs.addEventListener("mousedown", DownListener, false);
return { "DownListener" : DownListener, "UpListener" : UpListener, "MoveHandler" : MoveHandler,
"OffsetX" : OffsetX, "OffsetY" : OffsetY, "dX" : dX, "dY" : dY, "DownX" : DownX, "DownY" : DownY, "Down" : Down,
"LastMsg" : LastMsg }
}
// ...
var Mouse = new MouseHandler (canvas, HexCanvas, PostMouse);
似乎 LocalX 被适当地设置为外部函数 MouseHandler 中定义的“X”的值,但 LastMsg 似乎是内部 MoveHandler 中的一个(隐式声明的)局部变量,而不是(如我所料)定义的 LastMsg在外部函数 MouseHandler 内。正如预期的那样,使用引用 Mouse.LastMsg 似乎是指外部函数的 LastMsg 的值。
我在这里遗漏了一些明显的东西吗?有人可以指导我查阅 HTML5 变量范围的在线参考资料,以便为我澄清这个问题吗?