Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 04.08.2015, 08:01
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от dmitry111 Посмотреть сообщение
51 строка должна быть

var soldier = Factory('Soldier', 'Vasya');
см. пост 11
Ответить с цитированием
  #22 (permalink)  
Старый 04.08.2015, 09:08
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Сообщение от Rise Посмотреть сообщение
см. пост 11
да я там выше ошибся. поправил
Ответить с цитированием
  #23 (permalink)  
Старый 04.08.2015, 10:14
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от dmitry111 Посмотреть сообщение
передавать их при создании объекта тоже не катит, потому как карта имеет динамические элементы, которые должны создаваться конструктором в любой момент игры
Не понятно про "динамические элементы", пример приведи конструктора карты с такими элементами и как они там проявляют свою динамичность.
Ответить с цитированием
  #24 (permalink)  
Старый 04.08.2015, 11:23
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Сообщение от Rise
Не понятно про "динамические элементы", пример приведи конструктора карты с такими элементами и как они там проявляют свою динамичность.

изначально карта отрисовывалась из тайлов и общая картинка карты не изменялась Все данные для карты передавались при инициализации (то есть только один раз).

Теперь же, с появлением динамических элементов появилась необходимось создавать небольшие "куски" карты после инициализации, которые могли участвовать в игре - динамические. Например ящик, который можно будет подвинуть. Для них и нужны эти данные.
Ответить с цитированием
  #25 (permalink)  
Старый 05.08.2015, 04:35
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

dmitry111, а почему наследовать нельзя, передавать в момент создания объекта нельзя? в прототипы тоже под запретом?)
Ответить с цитированием
  #26 (permalink)  
Старый 05.08.2015, 09:13
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Rise, наследовать не удобно потому как конструкторы грузятся все и сразу и не имеют строгих имен. Я могу опознать конструктор карт в момент инициализации карты. Мне приходит название конструктора и данные, по ним я и ориентируюсь
Ответить с цитированием
  #27 (permalink)  
Старый 05.08.2015, 22:06
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

dmitry111,
Factory[name] = data[name];
Factory[name].prototype.data = function (name, value) {
  var constr = this.constructor;
  if (value !== undefined) constr[name] = value;
  return constr[name];
};
Ответить с цитированием
  #28 (permalink)  
Старый 06.08.2015, 15:31
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Rise,

спасибо!

а как добавить свойства не создавая экземпляр?
Ответить с цитированием
  #29 (permalink)  
Старый 06.08.2015, 23:54
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

dmitry111, так например:
Factory.add = function (data) {
	var name, constr, link = this.data;
	for (name in data) {
		if (data.hasOwnProperty(name)) {
			constr = this[name] = data[name];
			constr.data = constr.prototype.data = link;
		}
	}
};
Factory.data = function (name, value) {
	var constr = (typeof this !== 'function') ? this.constructor : this;
	return (value !== undefined) ? constr[name] = value : constr[name];
};
// (Constructor|Instance).data(name) get the constructor's name value
// (Constructor|Instance).data(name, value) set the constructor's name value and return it

Последний раз редактировалось Rise, 07.08.2015 в 00:43.
Ответить с цитированием
  #30 (permalink)  
Старый 07.08.2015, 23:26
Аватар для dmitry111
Профессор
Отправить личное сообщение для dmitry111 Посмотреть профиль Найти все сообщения от dmitry111
 
Регистрация: 26.03.2012
Сообщений: 823

Rise,

да, вроде то что надо. Спасибо!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение данными html страницу ИлонкаС Общие вопросы Javascript 2 31.07.2015 16:55
Встроить конструктор чехлов в CMS Drupal 6 weboreh Работа 0 05.11.2014 11:23
Практика: Функция конструктор и геттер. Magneto Общие вопросы Javascript 2 07.07.2013 14:01
Java applet и JavaScript - обмен данными Партизан Серверные языки и технологии 3 15.05.2012 16:08