У меня есть базовый класс с именем 'baseScreen' следующим образом:Наследование с помощью Google Closure
digient.casino.ui.baseScreen = function() {
goog.debug.Logger.getLogger('demo').info('baseScreen');
this.background = goog.dom.createDom('div', {'class': 'backgroundHolder'}, '');
console.log(this);
}
digient.casino.ui.baseScreen.background = null;
digient.casino.ui.baseScreen.prototype.load = function() {
var self = this;
goog.debug.Logger.getLogger('demo').info('baseScreen : load');
goog.dom.appendChild(document.body, this.background);
<!-- screen setup code goes here -->
};
digient.casino.ui.baseScreen.prototype.resize = function(newSize) {
goog.debug.Logger.getLogger('demo').info('baseScreen : resize');
};
в onLoad
, если я загружаю baseScreen в
var sc = new digient.casino.ui.baseScreen();
sc.load();
его работает отлично.
Тогда я получить экран с именем registerScreen
следующим образом:
digient.casino.ui.registerScreen = function() {
goog.debug.Logger.getLogger('demo').info('registerScreen');
digient.casino.ui.baseScreen.call();
};
goog.inherits(digient.casino.ui.registerScreen, digient.casino.ui.baseScreen);
Когда я пытаюсь загрузить объект registerScreen
, его бросает ошибку на линии, где я пытаюсь добавить this.background
к document.body
и удачливый console.log(this)
в строке 4 отпечатки window
объект вместо baseScreen
или registerScreen
объект.
Что не так с моим кодом? Нужно ли переопределять нагрузку, изменять размер в моем производном классе? (пробовал это, но провал) или любую другую проблему?
См: [Почему 'goog.base (это)' необходимо в дополнение к 'goog.inherits () '?] (http://stackoverflow.com/questions/11122608/why-is-goog-basethis-necessary-in-addition-to-goog-inherits) –