Как стать автором
Обновить
1
0
n0mini @n0mini

Пользователь

Отправить сообщение
И только Adobe умудряется продавать за Д$ + В$ + Г$
Простите, парсер лох. Пойду вырву себе руки
Спасибо за труд. Только пример наследования и объяснение прототипов я бы делал без extend.

Например, опишем родителя:

/**
* constructor
*/
var Foo = function() {
/** type {number} */
this.param = 1;
}

/**
* return {number}
*/
Foo.prototype.getParam = function() {
return this.param;
}

Функция, реализующая наследование:

/**
* Реализует прототипное наслдование.
* Взял из Google Closure Library.
* @param {Function} childCtor Конструктор потомка
* @param {Function} parentCtor Конструктор родителя
*/
var inherits = function(childCtor, parentCtor) {
/**
* Создаем пустой конструктор
* constructor
*/
function tempCtor() {};
// Складываем прототип родителя в прототип временного
// конструктора
tempCtor.prototype = parentCtor.prototype;
// В superClass кладем ссылку на прототип родителя.
// Нужно чтобы вызывать методы родителя.
childCtor.superClass = parentCtor.prototype;
// В прототип ребенка кладем экземпляр пустого
// конструтора. Не забываем, что все методы родитля
// лежат в его прототипе, а значит передадутся
// ребенку
childCtor.prototype = new tempCtor();
// Запоминаем конструктор
childCtor.prototype.constructor = childCtor;
};

Теперь ребенка:

/**
* constructor
* @extends
*/
var Bar = function() {
// в superClass лежит ссылка на прототип родителя,
Foo.call(this);

/** type {number} */
this.otherParam = 2;
}
// Наследуемся от Foo, код наследования чуть выше.
inherits(Bar, Foo);

/**
* return {number}
*/
Bar.prototype.getOtherParam = function() {
return this.otherParam;
}

А теперь посмотрим, что получилось:

var foo = new Foo();
var fooParam = foo.getParam(); // 1

var bar = new Bar();
var barParam = bar.getParam(); // 1
var barOtherParam = bar.getOtherParam(); // 2

Объявлять методы внутри других методов или конструтора с помощью

this.myMethod = function() {/*… */};

не очень хорошо, так как они будут во всех экземплярах создаваться заново, а не ссылаться на функцию в прототипе. По возможности этого надо избегать.

Я понимаю, подход плох тем, что неудобно скрывать методы, делать их по настоящему приватными. Я в коде использую соглашеие, что приватные методы начинаются с _. Спасает только то, что на боевом сервере весь код выполняется в замыкании. Зато не нужно перекладывать метода из родителя в ребянка for..in
Квитанцию об оплате отбей слева немного. А так, конечно +++
Уже в процессе :)
Где купить?
Кажется, более актуально обратное. Допустим, мне не очень нравится слушать музыку в два уха, будучи на улице при оживленном движении транспорта. Вообще иногда полезно одно ухо держать в резерве на всякий случай.

Интересно, а будут ли они настраиваться?
А как же зум? а отключенные картинки? Эм, это решение не верно. К тому же подгрузку сторонних шрифтов каким-либо изуверским способом поддерживаю6т ie, ff3.5, opera10, safari3+ (в ие как всегда заморочки, нужно генерить шрифт weft'ом) В стороне только хром (что довольно странно), но его процент мал и, надеюсь, он подтянется за сафариком ^_^

Лучше использовать обычный @font-face, скоро его использование станет более менее кроссбраузерным.

ЗЫ: видел, что выходили из положения с помощью JS'a и flash, но решение так себе…
ЗЗЫ: к тому же метод мусорит в html, можно, конечно, скриптами текстики парсить -_-

В общем мысль хороша на уровне мысли, в жизни неприменима.
И иметь обкусанный функционал, который обводит блоки, превращая какую-нибудь промку в кашу. Порассуждайте в сторону portable софта ;)
На своем PowerBook'е использую ff. А на PC — Chrome для всяких веб-приложений (webKit-based). Какой-то я инвертированный О_о
Попробуй избавится от fixed'а. Есть способ, по-моему его предложил Сергей Чикуенок, суть заключается в том, что мы ложим див на всю видимую область, делаем ему overflow:auto, а body — overflow:hidden. Визуально тоже самое, но если положить элемент абсолютно вне дива, он встанет как fixed (это решение правило еще поведение fixed'a с png24 внутри при скроллинге в ff).

Если всякие fixed-приблуды важны — кури в эту сторону ;)
Отвратительно. Лучше юзать developer bar'ы. А для IE бордер вообще гениально, так как обрамить элемент обводкой, расширяя тем самым элемент и развалить всю верстку — это круто о_О.

frujo, бросьте это решение в унитаз. Мало того, что оно мало чем полезно, не кроссбраузерно и может перекрывать родные аутлайны, так оно еще и в глазах мельтишит.

По поводу developer bar'ов: он есть или можно подключить в ie, opera9+, ff, safari3+. В chrome поведение как в сафари, так что инструменты разработчиков есть во всех популярных браузерах. Итак, зачем нужен этот CSS?
Не особо понимаю смысл использования JS и статичной вертски, к JS не привязанной. Код почище, но не проще покурить в сторону canvas/vml — тут и углы чище будут (JS-а больше), зато гибкость в разы увеличивается
Во-первых — min-width, а во вторых, делают это с помощью CSS или expression() опять же в CSS.
Помниццо мне, я юзал собаку при выводе GET'a или POST'a в value input'a, то есть допустим при регистрации пользователя, если он что-то не верно ввел — он отдаст те переменные, что он писал до этого… имхо удобная штука…
Не нравитсо — не пользуй
У меня сейчас dial-up, загружается вся страница. На GPRS с телефона грузится также шикарно. И я не понимаю, как так получается что с GPRS медленнее, чем с модема.. там же асинхронный канал, входящий поток шире, бла-бла-бла...

Короч, я не осознал проблемы.

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность