私は JavaScript が初めてで、いくつかのベスト プラクティスを学ぼうとしています。次のコードで ctx 参照にアクセスできない理由がわかりません。ログは、myApp.init() からの context2d 参照を出力します。myApp モジュールの return ステートメントでプライベート オブジェクト変数を公開できませんか? 私はこの言語の基本を理解し始めたと思っていましたが、この一見単純な概念に不満を感じています. ご協力いただきありがとうございます。
window.onload = function () {
myApp.init();
console.log(myApp.ctx); // logs undefined
};
var myApp = (function () {
var canvas,
ctx,
init = function () {
canvas = document.getElementById("canvas");
ctx = canvas.getContext('2d');
console.log(ctx); // logs valid context2d object
};
return {
init : init,
ctx : ctx
};
}());
myApp.board = (function () {
var ctx = myApp.ctx;
return {
ctx : function () { console.log(ctx); } // logs undefined
};
}());