Я довольно новичок в javascript и пытаюсь изучить некоторые из лучших практик. Я не понимаю, почему я не могу получить доступ к ссылке ctx в следующем коде. Журнал выводит ссылку context2d из myApp.init(). Могу ли я не показывать частную переменную объекта в операторе return модуля myApp? Я думал, что начинаю понимать основы этого языка, но меня расстраивает эта, казалось бы, простая концепция. Спасибо за вашу помощь.Передача ссылок объектов между модулями
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
};
}());
Спасибо, вы хорошо сработали. Это считается «лучшей практикой»? Я прочитал некоторые не-такие вещи о новом ключевом слове. – Zelazny7