私は古代の C プログラマーで、HTML5 を使用しようとしていますが、多少の困難があります。X と LastMsg を含むその関数にローカルな変数を使用して、グローバル関数「MouseHandler」を定義しました。
関数 MoveHandler は MouseHandler 内にあり、ブレークポイントを配置するif (PostFunc)
と、ローカル変数の値は次のようになります。
- ABCStr は「QQQ」です
- DefStrは「ダウン417,358」
- LastMsg は「Down 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 は、定義された LastMsg を参照するのではなく、(予想どおり) 内部 MoveHandler 内の (暗黙的に宣言された) ローカル変数のようです。外部関数 MouseHandler 内。参照の使用 Mouse.LastMsg は、予想どおり、外部関数の LastMsg の値を参照しているように見えます。
ここで明らかな何かが欠けていますか?この問題を明確にしてくれる HTML5 の変数のスコープに関するオンライン リファレンスを教えてもらえますか?