Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.01.2010, 06:09
Аватар для Мараторий
Кандидат Javascript-наук
Отправить личное сообщение для Мараторий Посмотреть профиль Найти все сообщения от Мараторий
 
Регистрация: 22.01.2010
Сообщений: 114

Лишняя обертка
Простой вопрос. Зачем создавать обертку для объектов DOM? Это сделано только потому, что во всем известном браузере нельзя продать такой финт ушами? или есть еще причины?
Node.prototype.myProp = function() {
  alert("Ура");
}
document.getElementById("myid").myProp();
Ответить с цитированием
  #2 (permalink)  
Старый 26.01.2010, 09:02
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Вы сейчас о какой обёртке?
Ответить с цитированием
  #3 (permalink)  
Старый 26.01.2010, 11:52
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

да. да.
__________________
.ня
Ответить с цитированием
  #4 (permalink)  
Старый 26.01.2010, 14:13
Аватар для Мараторий
Кандидат Javascript-наук
Отправить личное сообщение для Мараторий Посмотреть профиль Найти все сообщения от Мараторий
 
Регистрация: 22.01.2010
Сообщений: 114

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

tenshi,
Первое "да" - это ответ на вопрос "Это сделано только потому, что во всем известном браузере нельзя продать такой финт ушами?"
А второе - это ответ на вопрос "или есть еще причины?"
Если так, то можно услышать про эти причины?
Ответить с цитированием
  #5 (permalink)  
Старый 26.01.2010, 14:56
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Мараторий
Я говорю об обертке для объектов DOM, которая создается при вызове $("myid").
Вы забыли уточнить framework, или у нас какой-нибудь jQuery уже default framework? Если вопрос касается всё-таки jQuery, то его идеология не позволяет ничего добавлять в прототипы встроенных объектов.
Ответить с цитированием
  #6 (permalink)  
Старый 26.01.2010, 15:11
Аватар для Мараторий
Кандидат Javascript-наук
Отправить личное сообщение для Мараторий Посмотреть профиль Найти все сообщения от Мараторий
 
Регистрация: 22.01.2010
Сообщений: 114

Kolyaj,
Видимо я покажусь вам совсем темным человеком, если спрошу: а разве не все framework`и так поступают?
Ответить с цитированием
  #7 (permalink)  
Старый 26.01.2010, 15:16
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Мараторий
а разве не все framework`и так поступают?
Я возможно покажусь вам надоедливым занудой, если спрошу: а как так? Делают функцию $? Или что-то определённое из неё возвращают? В любом случае каждый фреймворк имеет полное право сделать все по своему. Так вы о каком?
Ответить с цитированием
  #8 (permalink)  
Старый 26.01.2010, 15:24
Аватар для Мараторий
Кандидат Javascript-наук
Отправить личное сообщение для Мараторий Посмотреть профиль Найти все сообщения от Мараторий
 
Регистрация: 22.01.2010
Сообщений: 114

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

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

Ну и второй вопрос: возможно ли реализовать изменение прототипа объектов DOM в IE?
Ответить с цитированием
  #9 (permalink)  
Старый 26.01.2010, 15:32
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

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

Сообщение от Мараторий
возможно ли реализовать изменение прототипа объектов DOM в IE?
Есть способы, но все через ногу и не стоят того. Если интересно, попробуйте на хабре поискать.
Ответить с цитированием
  #10 (permalink)  
Старый 26.01.2010, 15:35
Аватар для Мараторий
Кандидат Javascript-наук
Отправить личное сообщение для Мараторий Посмотреть профиль Найти все сообщения от Мараторий
 
Регистрация: 22.01.2010
Сообщений: 114

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск