Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Моя первая попытка в ООП (https://javascript.ru/forum/project/32003-moya-pervaya-popytka-v-oop.html)

PashPP 29.09.2012 11:16

Моя первая попытка в ООП
 
И так, вот первый мой окошечный скрипт с использованием этих самых прототипов и претензией на подобие ООП. Как можно легко увидеть, может создавать группы попапов с дефолтными свойствами (картинка, класс, размер, положение) и при этом в каждом классе можно создавать уникальные окошки.

Критика, рассказы как делать нельзя, как делать нужно, что я сделал не так жутко приветствуются.
http://learn.javascript.ru/play/MEPC1b

забавную ссылку мне движок выдал

Dim@ 29.09.2012 15:52

PashPP,
по идее неплохо, (даже очень) но код трудно расширяем, примеры:
if (imgWid) im.style.width= imgWid +'px';

пиксели лучше не трогать, вдруг чувак захочет относительные еденицы измерения (приколисты и прочие мудрецы css не надо кричать что пиксели относительные - это так, но с разными компами фигня будет) em-ы к примеру или проценты
var closeButton = document.createElement('DIV');
    closeButton.className = 'closeButton';
    closeButton.style.width = 26 + 'px';
    closeButton.style.height = 15 + 'px';
    closeButton.style.cursor = 'pointer';
    closeButton.innerHTML = 'X';
    closeButton.style.textAlign = 'center';
    closeButton.style.lineHeight = '15px';
    popup.appendChild(closeButton);

собсно, тоже самое
можно ещё найти там, но мне сейчас лень копаться в коде

По-моему неплохо, тем более с ООП, но расширять код будет очень трудно :)

PashPP 29.09.2012 16:15

Dim@,
Почему трудно будет расширять?

С пикселями привычка, мне так быстрее за них зацепиться и поменять.
Но таки да, лучше просто строками передавать, надо будет переучиться.

melky 29.09.2012 16:57

Цитата:

Сообщение от PashPP (Сообщение 207226)
Dim@,
Почему трудно будет расширять?

С пикселями привычка, мне так быстрее за них зацепиться и поменять.
Но таки да, лучше просто строками передавать, надо будет переучиться.

ещё учиться и учиться

например,
var closeButton = document.createElement('DIV');
    closeButton.className = 'closeButton';
    closeButton.style.width = 26 + 'px';
    closeButton.style.height = 15 + 'px';
    closeButton.style.cursor = 'pointer';
    closeButton.innerHTML = 'X';
    closeButton.style.textAlign = 'center';
    closeButton.style.lineHeight = '15px';
    popup.appendChild(closeButton);

легко переходит в insertAdjacentHTML


остальное смотреть не стал - дохрена кода и лень. он какой-то кусачий, неприятно его читать.

один супер метод с повторяющимися операциями - код должен выглядеть, как текст, написанный на английском.

Dim@ 29.09.2012 17:08

PashPP,
Цитата:

Сообщение от PashPP
Почему трудно будет расширять?

Потому что если его увеличивать, то надо дать абсолютное владение надо этим окошком, то есть нужно что бы было менять его дизайн (если у сайта темный дизайн, эти окна будут мягко говоря "не к месту"), его кнопки, drag & drop и прочее, но для этого нужен нормальный API который трудно получить перерабатывая то что ты написал, легче переписать это ;)

PashPP 29.09.2012 17:09

Цитата:

Сообщение от melky
insertAdjacentHTML

Хм, когда листал учебник эту фигню был как-то пропустил. Надо будет запомнить, спасибо.

Цитата:

Сообщение от melky
он какой-то кусачий, неприятно его читать.

Пичаль же.

PashPP 29.09.2012 17:12

Dim@,
Эм. Но ведь там все берется с цсс, если не указанно явно а дж.
Кнопочка одна только полностью в скрипте дизайнится.

На счет остального - наверно, не знаю еще. Енивей, я и не планировал его особо расширять, если будет желание - добавить плавное скрытие/автоскрытие да и все.

Dim@ 29.09.2012 17:17

Цитата:

Сообщение от PashPP
я и не планировал его особо расширять, если будет желание - добавить плавное скрытие/автоскрытие да и все.

маловато, но надо (впрочем и мне) писать код легко расширяемый, ну или нормально расширяемый
Цитата:

Сообщение от PashPP
Эм. Но ведь там все берется с цсс, если не указанно явно а дж.

тоже не то, есть разные виды окошек, а у тебя один единственный класс вставлен
:)

PashPP 29.09.2012 17:42

Цитата:

Сообщение от Dim@
маловато, но надо (впрочем и мне) писать код легко расширяемый, ну или нормально расширяемый

Согласен. Но хрен его знает, что это значит.
Вот пример бы, что ли.

Цитата:

Сообщение от Dim@
тоже не то, есть разные виды окошек, а у тебя один единственный класс вставлен

Разве этого мало? Один класс - один стиль оформления. Разве не логично?

Dim@ 29.09.2012 20:09

PashPP,
Цитата:

Сообщение от PashPP
Разве этого мало?

мало, есть разница между окном предупреждения и заполнением номера?
Цитата:

Сообщение от PashPP
Но хрен его знает, что это значит.

это значит код, который легче дописывать, нежели переписывать, пример с которым я столкнулся когда писал "Перехватчик на JavaScript":
я при движении цели писал абсолютное значение, а мест куда можно двигаться 9 значений, то есть постоянно на развилках if else писал абсолютное значение 1, когда пришлось сделать движение на две и болеее клетки я понял что нужно было писать на развилках не 1, а переменную которая содержало в себе 1 или 2 или 3 и т.д. так это облегчило бы мне задание - это пример мягко говоря плохой, но тем не менее пример :)


Часовой пояс GMT +3, время: 19:00.