Классы в других параграфах
Цитата: morrinoa от 16.09.19, 01:30Насколько я понимаю, использование ООП изначально не подразумевается, однако...
Суть вопроса - я описываю некий класс
class JustClass {};
Данный класс расположен в одноимённом параграфе - JustClassParagraph. Далее в другом параграфе, назовём его AnotherParagraph, я хочу создать объект типа JustClass.
Случай первый:
Подключаю код из другого параграфа и создаю объект:
display( 'JustClassParagraph' );
val = new JustClass;
Игра не запускается.
Случай второй:
Создаю объект в JustClassParagraph, далее, в AnotherParagraph, вызываю соответствующий дисплей и спокойно использую объект.
Случай третий:
В JustClassParagraph создаю фабричную функцию (не уверен, стоит ли так называть фабричную функцию, но, раз она расположена вне класса...):
class JustClass {};
createJustClass = function() {
return new JustClass;
};
Далее, в AnotherParagraph, дисплею нужный параграф и, вызывая фабричную функцию, создаю свой объект
display( 'JustClassParagraph' );
val = createJustClass();
Как и во втором случае, работает отлично.
Собственно вопросы:
- Что не так с первым случаем, есть ли варианты работы непосредственно с описанным мной классом из другого параграфа?
- Как работает display? Судя по всему, его работа отличается от include, import и т.д. из других языков, хотелось бы узнать поподробнее.
Насколько я понимаю, использование ООП изначально не подразумевается, однако...
Суть вопроса - я описываю некий класс
class JustClass {};
Данный класс расположен в одноимённом параграфе - JustClassParagraph. Далее в другом параграфе, назовём его AnotherParagraph, я хочу создать объект типа JustClass.
Случай первый:
Подключаю код из другого параграфа и создаю объект:
display( 'JustClassParagraph' );
val = new JustClass;
Игра не запускается.
Случай второй:
Создаю объект в JustClassParagraph, далее, в AnotherParagraph, вызываю соответствующий дисплей и спокойно использую объект.
Случай третий:
В JustClassParagraph создаю фабричную функцию (не уверен, стоит ли так называть фабричную функцию, но, раз она расположена вне класса...):
class JustClass {};
createJustClass = function() {
return new JustClass;
};
Далее, в AnotherParagraph, дисплею нужный параграф и, вызывая фабричную функцию, создаю свой объект
display( 'JustClassParagraph' );
val = createJustClass();
Как и во втором случае, работает отлично.
Собственно вопросы:
- Что не так с первым случаем, есть ли варианты работы непосредственно с описанным мной классом из другого параграфа?
- Как работает display? Судя по всему, его работа отличается от include, import и т.д. из других языков, хотелось бы узнать поподробнее.
Цитата: Morych от 16.09.19, 15:54Вся проблема в том, что класс JustClass известен только в том параграфе, в котором определен (приватный). Нужно объявить глобальную переменную которая будет ссылаться на класс. В параграфе JustClassParagraph:
JustClass = class {
...
};
После этого использование класса описанное в первом случае станет возможным.
Вся проблема в том, что класс JustClass известен только в том параграфе, в котором определен (приватный). Нужно объявить глобальную переменную которая будет ссылаться на класс. В параграфе JustClassParagraph:
JustClass = class {
...
};
После этого использование класса описанное в первом случае станет возможным.
Цитата: DoubleDragon от 17.09.19, 07:59Каждый параграф суть функция. display просто вызывает эту функцию.
Каждый параграф суть функция. display просто вызывает эту функцию.