Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.01.2016, 21:15
Кандидат Javascript-наук
Отправить личное сообщение для zlodiak Посмотреть профиль Найти все сообщения от zlodiak
 
Регистрация: 24.02.2012
Сообщений: 104

проблема с наследованием
помогите пожалуйста разобраться с наследованием на следующем примере:

есть 2 конструктора: Game, Level. на их основе я создаю 2 объекта таким образом чтобы level наследовался от game:
var Game = function(parentGameElementTag) {
  this.parentGameElementTag = parentGameElementTag;
  this.gameElementId = 'game';
  this.levelObj = new Level();  

  this.init();
};

Game.prototype = {
  init: function() {  
    $('<div class="game" id="' + this.gameElementId + '"></div>').appendTo(this.parentGameElementTag);   
  }
 };
 
 var Level = function() { 
  var self = this;

  this.fieldElementId = 'field';  
  this.levelScreenDisplay('body');  
};

//Level.prototype = Game;
Level.prototype = Object.create(Game.prototype);

Level.prototype = {

  levelScreenDisplay: function(parentElementTag) {
    $('<div class="level_begin_label" id="levelBeginLabel">Уровень: ' + this.level + '</div>').appendTo(parentElementTag);   

    setTimeout(function() { 
      $('<div class="any_key_invitation" id="anyKeyInvitation">Нажмите любую клавишу для старта</div>').appendTo('#levelBeginLabel');

      document.onkeypress = function() {
        document.onkeypress = undefined;
        $('#levelBeginLabel').remove();
      };          
    }, 1000);
  }
};
 
var	app = new Game('body');


в результате на странице должен выводиться номер уровня. которого нет в level, но который есть в game. а благодаря наследованию он должен найтись. но не находится. в чём я ошибаюсь?
Ответить с цитированием
  #2 (permalink)  
Старый 21.01.2016, 21:57
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

zlodiak,

<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
var Game = function(parentGameElementTag) {
  this.parentGameElementTag = parentGameElementTag;
  this.gameElementId = 'game';
  this.level = 0;
  this.init();
};

Game.prototype.init = function() {
    $('<div class="game" id="' + this.gameElementId + '">Game</div>').appendTo(this.parentGameElementTag);

 };
Game.prototype.gameOver = function() {
    $('<div class="game" >Game over!!!</div>').appendTo(this.parentGameElementTag);

 };
 var Level = function() {
  Game.apply(this, arguments);
  this.fieldElementId = 'field';
  this.levelScreenDisplay();
};


Level.prototype = Object.create(Game.prototype);
Level.prototype.constructor = Level;
Level.prototype.levelScreenDisplay = function() {
     var self = this;
    $('<div class="level_begin_label" id="levelBeginLabel">Уровень: ' + this.level + '</div>').appendTo(this.parentGameElementTag);

    setTimeout(function() {
      $('<div class="any_key_invitation" id="anyKeyInvitation">Нажмите любую клавишу для старта</div>').appendTo('#levelBeginLabel');

      $(document).one('keypress', function() {
        $('#levelBeginLabel').remove();
        self.level++;
        if (self.level == 3) self.gameOver();
        else self.levelScreenDisplay();
      });
    }, 1000);
  }
Level.prototype.levelScreenDisplay

var	app = new Level('body');


</script>
</body>

</html>
Ответить с цитированием
  #3 (permalink)  
Старый 22.01.2016, 11:05
Кандидат Javascript-наук
Отправить личное сообщение для zlodiak Посмотреть профиль Найти все сообщения от zlodiak
 
Регистрация: 24.02.2012
Сообщений: 104

спасибо, помогло
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с наследованием в IE froosty Internet Explorer 2 06.11.2013 22:36
Проблема с радио кнопками px379 Общие вопросы Javascript 8 29.07.2013 09:30
Проблема с наследованием и this. lyapun Общие вопросы Javascript 1 06.11.2011 20:56
Проблема с Popup окном vovuslik jQuery 5 12.06.2010 16:12
Проблема с CSS COKOJIOB (X)HTML/CSS 5 04.08.2009 14:19