Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   Лишняя обертка (https://javascript.ru/forum/library-toolkit-framework/7305-lishnyaya-obertka.html)

Мараторий 26.01.2010 06:09

Лишняя обертка
 
Простой вопрос. Зачем создавать обертку для объектов DOM? Это сделано только потому, что во всем известном браузере нельзя продать такой финт ушами? или есть еще причины?
Node.prototype.myProp = function() {
  alert("Ура");
}
document.getElementById("myid").myProp();

Kolyaj 26.01.2010 09:02

Вы сейчас о какой обёртке?

tenshi 26.01.2010 11:52

да. да.

Мараторий 26.01.2010 14:13

Kolyaj,
Я говорю об обертке для объектов DOM, которая создается при вызове $("myid"). Т.е.
$("myid") != document.getElementById("myid")
а есть объект такого вида:
$("myid") ===> {node: document.getElementById("myid")}
И у этого объекта есть прототип, в котором имеется наше свойство myProp
$("myid").__proto__.myProp = function() { alert("Ура"); }

tenshi,
Первое "да" - это ответ на вопрос "Это сделано только потому, что во всем известном браузере нельзя продать такой финт ушами?"
А второе - это ответ на вопрос "или есть еще причины?"
Если так, то можно услышать про эти причины?

Kolyaj 26.01.2010 14:56

Цитата:

Сообщение от Мараторий
Я говорю об обертке для объектов DOM, которая создается при вызове $("myid").

Вы забыли уточнить framework, или у нас какой-нибудь jQuery уже default framework? Если вопрос касается всё-таки jQuery, то его идеология не позволяет ничего добавлять в прототипы встроенных объектов.

Мараторий 26.01.2010 15:11

Kolyaj,
Видимо я покажусь вам совсем темным человеком, если спрошу: а разве не все framework`и так поступают?

Kolyaj 26.01.2010 15:16

Цитата:

Сообщение от Мараторий
а разве не все framework`и так поступают?

Я возможно покажусь вам надоедливым занудой, если спрошу: а как так? Делают функцию $? Или что-то определённое из неё возвращают? В любом случае каждый фреймворк имеет полное право сделать все по своему. Так вы о каком?

Мараторий 26.01.2010 15:24

Цитата:

Сообщение от Kolyaj (Сообщение 42097)
В любом случае каждый фреймворк имеет полное право сделать все по своему.

Это несомненно так.

На самом деле я, видимо подошел не с того конца. Спрошу по-другому: какие из наиболее известных framework`ов поступают не так как jQuery в отношении функции $?

Ну и второй вопрос: возможно ли реализовать изменение прототипа объектов DOM в IE?

Kolyaj 26.01.2010 15:32

Цитата:

Сообщение от Мараторий
какие из наиболее известных framework`ов поступают не так как jQuery в отношении функции $?

Вопрос поставлен некорректно. В ExtJS, например, нет функции $, но соответствующая функция возвращает объект-обёртку, как и jQuery. Prototype же возвращает сам DOM-объект с добавленными методами.

Цитата:

Сообщение от Мараторий
возможно ли реализовать изменение прототипа объектов DOM в IE?

Есть способы, но все через ногу и не стоят того. Если интересно, попробуйте на хабре поискать.

Мараторий 26.01.2010 15:35

Kolyaj,
Спасибо. Вот теперь стало ясно.


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