Объект возвращает document или...
Всем привет. Прошу в вас помощи в таком деле. Решил для своего сайта запилить объект для быстрой работы с документом, в который добавлю новые функции (insertAfter, удобные мне названия функций поиска, удаление/добавление элемента...). Знаю, что странно, но мне так удобнее пилить скрипты. Вот нужная часть:
var DOM = { global: document, HTML: document.documentElement, BODY: document.body, HEAD: document.head, // тут ещё несколько функций и методов } Но понял, что DOM.global для document звучит как-то странно. Поэтому возник вопрос: как переделать объект так, чтобы просто DOM был равен document, а его свойства - тому, что я скажу. Т.е. сейчас так: alert(DOM.global == docuement); // true alert(DOM.HEAD == document.head); // true , а мне нужно: alert(DOM == docuement); // true, т.к. DOM это document alert(DOM.HEAD == document.head); // true, т.к. в объекте DOM свойство HEAD даёт ссылку на document.head . Помогите пожалуйста :з Алсо, это можно сделать через, например, valueof, toString или подобным свойствами объекта? |
Очень странный подход) На самом деле ты просто пишешь какую-то фигню)
Присвой документ переменной и все. var DOM = document; DOM.head; DOM.body; Почему не нравится такой способ? И зачем вообще эти танцы с бубном) |
Цитата:
|
Цитата:
|
Цитата:
|
2chan, нельзя сделать так чтобы объект одновременно был и документом, и объектом с функциями или свойствами.
Хочется помощника-делай, но сделать так чтобы он одновременно возвращал два варианта-не комильфо. Или же можешь расширить прототип. |
Если пишешь один, можешь не париться и напихать всё в сам документ:
document.foo = function(){return 'bar'}; DOM = document; alert(DOM.head); alert(DOM.foo()); А если пишешь не один - всё равно не будешь юзать подобные извращения.:) А в том что ты просишь - ошибка в логике. Объект, очевидно, не может быть одновременно равен и не равен другому объекту. Что-то наподобие можно изобразить с помощью новомодных Proxy, но даже так document == DOM будет false. |
И действительно! Такое очевидное решение, а я ищу сложные обходные пути. Спасибо большое :з
|
Aetae, а почему не в прототип? Или проблемы со старыми IE?
|
Цитата:
|
Часовой пояс GMT +3, время: 02:30. |