Re[3]: AJAX.OOP - JavaScript OOP/Ajax Engine
От: anonymous Россия http://denis.ibaev.name/
Дата: 08.09.08 18:48
Оценка: +1
Здравствуйте, ЖуК, Вы писали:

A>>А почему часть методов имеет названия в Pascal case, а часть — в Camel case?

ЖуК>Эээммм... да. Согласен, некоторые вещи немного вводят в заблуждение. Вообще, изначально принцип задумывался такой:
ЖуК>lowerCamelCase — для методов и свойств
ЖуК>UpperCamelCase — для имен классов и метода Class (который собственно и используется для объявления классов)
ЖуК>Как считаете — насколько критично вносить исправления? Стоит ли?

Во-первых, единообразие названий должно быть. Во-вторых, в JavaScript принято для свойств объекта использовать lowerCamelCase (если не считать решения от Microsoft). Лучше поправить.

Свойства идентификации браузеров можно переименовать, добавив перфикс "is". Это решит проблему с IE. Либо ввести одно строковое свойство browser, которое бужет принимать то или иное значение. Либо сделать это свойство числовым и добавить несколько "константных" свойств типа BROWSER_MSIE, и сравнивать так: Ajax.browser == Ajax.BROWSER_FIREFOX.

Свойство Version лучше записать в верхнем регистре, это будет символизировать его "константность".
Re[3]: AJAX.OOP - JavaScript OOP/Ajax Engine
От: . Великобритания  
Дата: 09.09.08 01:00
Оценка: +1
ЖуК wrote:

> имен-браузеров видим UpperCamelCase, так у меня получилось из-за IE и

> потом пошло-поехало, также как исключение получились свойства
Просто можно применить такое правило — кейс для аббревиатур точно такой же как и для слов. Т.е. класс будет называться class Ie, а фция ie(). Это позволяет красиво записывать подряд идущие аббревиатуры, типа class XmlDomDao, xmlDomDao() вместо class XMLDOMDAO, xMLDOMDAO(??).
Posted via RSDN NNTP Server 2.1 beta
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[4]: AJAX.OOP - JavaScript OOP/Ajax Engine
От: ЖуК Украина http://smart-ip.net/
Дата: 09.09.08 09:15
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Свойства идентификации браузеров можно переименовать, добавив перфикс "is". Это решит проблему с IE. Либо ввести одно строковое свойство browser, которое бужет принимать то или иное значение. Либо сделать это свойство числовым и добавить несколько "константных" свойств типа BROWSER_MSIE, и сравнивать так: Ajax.browser == Ajax.BROWSER_FIREFOX.


Переделал первім способом — через is. Второй действительно очень хорош, но именно для данной задачи очень громоздкий как с точки зрения реализации так и с точки зрения использования.

Также учтены пожелания товарища "."

Спасибо за то, что помогаете
_____________________________________________________________
"Голова — кость, поэтому болеть не может..." © Неизвестный автор
Re[5]: AJAX.OOP - JavaScript OOP/Ajax Engine
От: . Великобритания  
Дата: 09.09.08 15:28
Оценка: +1
ЖуК wrote:

> Переделал первім способом — через is. Второй действительно очень хорош,

> но именно для данной задачи очень громоздкий как с точки зрения
> реализации так и с точки зрения использования.
стырь отсюда: http://docs.jquery.com/Utilities/jQuery.browser
Posted via RSDN NNTP Server 2.1 beta
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re: AJAX.OOP - JavaScript OOP/Ajax Engine
От: anonymous Россия http://denis.ibaev.name/
Дата: 10.09.08 10:59
Оценка: 12 (1)
Здравствуйте, ЖуК, Вы писали:

ЖуК>http://ajaxoop.org/


Ошибка:
var $ = function( id) {
    // Если получили в качестве аргументов элементы, то функция вернёт только первый.
    // Лучше эту проверку поместить после следующей, чтобы всё таки функция прошлась по всему списку.
    if (Ajax.isElement( id)) return id;
    var el = null;
    if (arguments.length > 1) {
        for (var i = 0, els = [], length = arguments.length; i < length; i++) {
            els.push( $( arguments[i]));
        }
        return els;
    }
    return $d.getElementById( id);
};
Re[2]: AJAX.OOP - JavaScript OOP/Ajax Engine
От: ЖуК Украина http://smart-ip.net/
Дата: 10.09.08 14:24
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Здравствуйте, ЖуК, Вы писали:


ЖуК>>http://ajaxoop.org/


A>Ошибка:

...

О! Благодарю! Кстати если не трудно пиши ошибки сюда — http://code.google.com/p/ajaxoop/issues/entry
Чебы не забыть не дай бог
_____________________________________________________________
"Голова — кость, поэтому болеть не может..." © Неизвестный автор
Re[3]: AJAX.OOP - JavaScript OOP/Ajax Engine
От: anonymous Россия http://denis.ibaev.name/
Дата: 10.09.08 15:02
Оценка:
Здравствуйте, ЖуК, Вы писали:

ЖуК>О! Благодарю! Кстати если не трудно пиши ошибки сюда — http://code.google.com/p/ajaxoop/issues/entry

ЖуК>Чебы не забыть не дай бог

Ладно.

Вот ещё оптимизация. Вместо
    isElement   : function( obj) { return (obj && obj.nodeType && obj.nodeType == 1) ? true : false; },

наверное можно написать
    isElement   : function( obj) { return (obj instanceof Element); },
Re[4]: AJAX.OOP - JavaScript OOP/Ajax Engine
От: ЖуК Украина http://smart-ip.net/
Дата: 10.09.08 15:59
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Вот ещё оптимизация. Вместо

A>
A>    isElement   : function( obj) { return (obj && obj.nodeType && obj.nodeType == 1) ? true : false; },
A>

A>наверное можно написать
A>
A>    isElement   : function( obj) { return (obj instanceof Element); },
A>


Боюсь что это не будет работать. isElement для проверки является ли объект DOM-элементом.
_____________________________________________________________
"Голова — кость, поэтому болеть не может..." © Неизвестный автор
Re[5]: AJAX.OOP - JavaScript OOP/Ajax Engine
От: anonymous Россия http://denis.ibaev.name/
Дата: 10.09.08 16:31
Оценка: +1
Здравствуйте, ЖуК, Вы писали:

A>>Вот ещё оптимизация. Вместо

A>>
A>>    isElement   : function( obj) { return (obj && obj.nodeType && obj.nodeType == 1) ? true : false; },
A>>

A>>наверное можно написать
A>>
A>>    isElement   : function( obj) { return (obj instanceof Element); },
A>>

ЖуК>Боюсь что это не будет работать. isElement для проверки является ли объект DOM-элементом.

Да, в IE не работает, но работает в Firefox. А проверку isElement() легко пройдёт объект { nodeType: 1 }.
Re[6]: AJAX.OOP - JavaScript OOP/Ajax Engine
От: ЖуК Украина http://smart-ip.net/
Дата: 10.09.08 16:33
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Да, в IE не работает, но работает в Firefox. А проверку isElement() легко пройдёт объект { nodeType: 1 }.


Я пока не вижу другого способа... хотя нужно подумать...
_____________________________________________________________
"Голова — кость, поэтому болеть не может..." © Неизвестный автор
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.