|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Нужен совет по подключению классов в JS-проекте
В NodeJS есть штатный механизм подключения модулей
Есть необходимость в аналоге для браузерного JS. Есть какое-нибудь готовое опробованное решение? ЗЫ. Обязательно чтобы отладчик работал. Потому что при сборке на лету некоторыми способами все в целом работает, но тот же FireBug не может показать строчку с ошибкой, если она возникает. |
|
|||||
Lorem ipsum
|
Речь идет о произвольном коде или конкретно о NodeJS?
И что подразумевается под "классами"?
__________________
Поймай яблоко 2! |
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Речь идет о проекте на чистом JS для работы клиентской части приложения. Если точнее, то там разрабатывается движочек, использующий возможности html5.
Хотелось бы, чтобы в итоге проект выглядел примерно как проект на AS3, т.е., один класс - один файл, в начале каждого файла с классом был указан импорт, все само собирается и биндится. Т.е., примерно как require в NodeJS или require_once в PHP. Под классами в данном случае подразумевается их реализация на JS. function Animal(name) { this.speed = 0; this.name = name; this.run = function(speed) { this.speed += speed; alert( this.name + ' бежит, скорость ' + this.speed ); }; this.stop = function() { this.speed = 0; alert( this.name + ' стоит' ); }; }; var animal = new Animal('Зверь'); ЗЫ. Пишу не я, пишет коллега, но я вижу, что он зарылся и не может найти решения. По крайней мере, те решения, которые он нашел к текущему моменту, не подходят. |
|
|||||
Lorem ipsum
|
1. Достаточно прописать в <head> все используемые скрипты. Начинать работу следует по факту полной загрузки страницы.
2. Использовать минимизатор, который собирает все отдельные js-файлы в один, который указывается в том же <head>. P.S. И да, "классы" немного по-другому имитируются, через прототипы. Добавлено через 13 минут Пример объявления "класса": // Это наш класс. Конструктор. var Animal = function(name) { this.speed = 0; this.name = name; }; // Это пример статических полей и методов. Animal.CLASS_DESC = "Животные всякие"; Animal.ping = function() { console.log("Мы тут, пасемся!"); }; // Это методы. Они все будут публичными. Можно как-то намутить // приватные, но там черт голову сломает, потому нуегонафиг. Animal.prototype.run = function(speed) { this.speed += speed; console.log(this.name + ' бежит, скорость ' + this.speed); }; Animal.prototype.stop = function() { this.speed = 0; console.log(this.name + ' стоит'); };
__________________
Поймай яблоко 2! Последний раз редактировалось Zebestov; 14.04.2015 в 14:02. |
|
|||||
[+1 09.05.15]
Регистрация: Jan 2015
Сообщений: 113
|
Для отладки гуглите source map, для require browserify.
И привата в js нет. Многие js разработчики приватом называют замыкание. Они привыкли писать модульно и не создавать больше одного модуля на приложение, по этому для них замыкание действительно имитирует приват. Но для тех кто создает более одного модуля, приватная скопа становится общей для всех инстенсов. Еще есть в шестой версии символ и что-то ещё призванное имитировать приватность.. Но и к таким приватным свойствам можно будет добраться. |
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
ок, спс.
посмотрим в эту сторону тоже. |
|
|||||
[+1 09.05.15]
Регистрация: Jan 2015
Сообщений: 113
|
И раз у Вас такие скудные познания в js, то я бы ещё посоветовал посмотреть в сторону препроцесоров babelJS или typescript. Если появятся мысли типа - "я не буду х использоваться, я же программист, я буду на чистом писать". Выкиньте эти мысли из головы.
|
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Цитата:
Кстати, а никто не подскажет нормального форума по JS (в частности по проектам на JS)? Javascript.ru не предлагать. Последний раз редактировалось mikhailk; 14.04.2015 в 16:17. |
|
|||||
[+1 09.05.15]
Регистрация: Jan 2015
Сообщений: 113
|
Не знаю почему, но сложилось такое мнение, что в as3 люди воспитанные, максимум могут промолчать.
В php наоборот, одни оборотни, которые друг перед другом выделываются и постоянно грызутся, как собачки. JS же что-то среднее между первым и вторым. На начальном этапе Вам все разжуют и объяснят, но если копнуть чуть глубже то и послать могут, но чаще всего просто скажут, что каждый должен дойти до всего сам. Но и ругать их нет причин, так как js это бескрайние просторы космоса в котором варятся все у кого нет своего дисплей листа, как это есть у нас. А все языки разные и люди разные и все хотят свою толику внести, что превращает js во вселенную. И если Вы считает что Вам ответят на вопрос "какой фраймворк" или "какой препроцессор лучше", то нет. Как Вам ответить если вряд ли найдется человек, который их все пробовал и сравнивал. В as3 есть Starling и его хватает заглаза и его все и всякому советуют, а в js даже ещё полноценного игрового движка нет. Даже не все режимы наложения в webgl реализованы. И как заключение можно лишь сказать, что если у Вас нет друга гуру, то приготовьтесь с полгода все свое время потратить на изучение технологий. Да и сколько нормальных форумов по проектам на as3 Вы знаете? Я таких не знаю. Или Вы готовы потратить неделю времени на объяснения создавая себе конкурента, которых в js просто миллионы? |
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Цитата:
Но я ему обрисую ситуацию. |
Часовой пояс GMT +4, время: 16:32. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|