|
|
|
скобки и объекты по умолчанию в javascript
|
|||
|---|---|---|---|
|
#18+
Есть пара простых вопросов начинающего в JavaScript и JScript : 1) Не мог понять , как разобрать код (function(){ WScript.Echo("How do you do"); })() Т.е. - что означает заключение слова function в скобки ? И зачем скобки () после (function(){...}) () ? 2) При использовании javascript в браузере часто не указывается объект , а только метод, например, alert("Сообщение"); Как понять, к какому объекту принадлежит метод (alert приведен только для примера, я знаю, что он принадлежит объекту window , но интересует понимание вообще для любого аналогичного использования метода) ? Т.е. как понять , если объект не указан, а только его метод/свойство, то какой объект используется для данного браузера по умолчанию ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2009, 20:55 |
|
||
|
скобки и объекты по умолчанию в javascript
|
|||
|---|---|---|---|
|
#18+
1) Создается функция function(){WScript.Echo("How do you do");} и тут же вызывается (вызов функции - те самые последние скобки). 2) Если объект не указан, то по умолчанию подставляется корневой объект window ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2009, 21:04 |
|
||
|
скобки и объекты по умолчанию в javascript
|
|||
|---|---|---|---|
|
#18+
Яростный Меч1) Создается функция function(){WScript.Echo("How do you do");} и тут же вызывается (вызов функции - те самые последние скобки). 2) Если объект не указан, то по умолчанию подставляется корневой объект window Спасибо. Хотелось бы уточнения. 1) А ЗАЧЕМ создается функция ? Ведь можно не создавая функции вызвать WScript.Echo("How do you do"); Но! Очень часто в коде JScript скриптов или, например, в Opera UserJavascript используют именно этот прием - создается функция без параметров и тут же вызывается . ? 2) По поводу корневого объекта window - он для всех браузеров одинаковый ? Правильно ли я понимаю, что это корневой объект DOM модели конкретного браузера, тогда - где для каждого браузера можно посмотреть эту модель ? Т.е. это вопрос в плане написания кроссбраузерного кода - Какая вообще должна быть политика при написании Javascript кода, чтобы код был совместим с большинством браузеров (IE,Opera,FF)? PS И кстати, корневой объект - это что такое ? Я знаю, что IE automation , например, объект Window получается через InternetExplorer.Document.Frames - > Window, т.е. как-бы выходит не корневой он ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2009, 21:46 |
|
||
|
скобки и объекты по умолчанию в javascript
|
|||
|---|---|---|---|
|
#18+
kefi1) А ЗАЧЕМ создается функция ? Ведь можно не создавая функции вызвать WScript.Echo("How do you do"); Но! Очень часто в коде JScript скриптов или, например, в Opera UserJavascript используют именно этот прием - создается функция без параметров и тут же вызывается . ?Рискну предположить, что ради локальных переменных. Т.е. все вспомогательные переменные, которые будут созданы внутри кода, будут локальными и уничтожатся по завершении вызова функции. Плюсы - освобождение памяти. kefi2) По поводу корневого объекта window - он для всех браузеров одинаковый ? Правильно ли я понимаю, что это корневой объект DOM модели конкретного браузера, тогда - где для каждого браузера можно посмотреть эту модель ? Т.е. это вопрос в плане написания кроссбраузерного кода - Какая вообще должна быть политика при написании Javascript кода, чтобы код был совместим с большинством браузеров (IE,Opera,FF)?Думаю, что он везде корневой. Насчет кроссбраузерности - DOM модели могут различаться (тот же xmlHttpRequest, например, создается по разному), тут надо читать, смотреть. Сам JS практически одинаков везде ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2009, 13:21 |
|
||
|
скобки и объекты по умолчанию в javascript
|
|||
|---|---|---|---|
|
#18+
kefi IE automation , например, объект Window получается через InternetExplorer.Document.Frames - > Window Не путайте теплое и мягкое: ОЛЯ - это ОЛЯ. А DOM'ик - это DOM'ик. В ОЛЕ Вы смотрите сверху вниз (снаружи внутрь) на M$ IE. А из JS'а Вы смотрите на browser снизу вверх (изнутри наружу). _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2009, 14:28 |
|
||
|
скобки и объекты по умолчанию в javascript
|
|||
|---|---|---|---|
|
#18+
Ex_Soft kefi IE automation , например, объект Window получается через InternetExplorer.Document.Frames - > Window Не путайте теплое и мягкое: ОЛЯ - это ОЛЯ. А DOM'ик - это DOM'ик. В ОЛЕ Вы смотрите сверху вниз (снаружи внутрь) на M$ IE. А из JS'а Вы смотрите на browser снизу вверх (изнутри наружу). Первое совсем не так, второе немного не так. 1) InternetExplorer.document.parentWindow 2) В обоих случаях взгляд снаружи внутрь. Просто в первом с уровня IE, во втором с уровня документа. Наружу хода нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2009, 14:45 |
|
||
|
скобки и объекты по умолчанию в javascript
|
|||
|---|---|---|---|
|
#18+
Кстати, в случае с IE DOM=OLE. Поэтому несложно и логично было добавить поддержку ActiveX. Кстати2. OLE — устаревшая технология, ей на смену пришел COM и ActiveX. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2009, 14:50 |
|
||
|
скобки и объекты по умолчанию в javascript
|
|||
|---|---|---|---|
|
#18+
Antonariy /me думает: хотелось как лучше, а получилось - как всегда... Подразумевалось, что в случае с OLE automation МЫ, как бы, держим IE/Word/Calc в кулаке, смотрим на него сверху и командуем. Мы можем управлять именно instance'ом: сделать его видимым/невидимым, активизировать, quit etc. А в случае же DOM'ика, мы, в общем случае, копошимся внутри документа, который загружен в browser. Antonariy Наружу хода нет Кто б спорил ;) А первый кричал - куда хотим, туда едем, и можем если надо свернуть, Второй отвечал, что поезд проедет лишь там, где проложен путь. Antonariy OLE — устаревшая технология, ей на смену пришел COM и ActiveX В этой терминологии сам мелкософт ногу сломит. Сколько копий уже было сломано в процессе выяснения кто кому Рабинович. _________________ "Helo, word!" - 17 errors 56 warnings Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2009, 15:42 |
|
||
|
скобки и объекты по умолчанию в javascript
|
|||
|---|---|---|---|
|
#18+
off Antonariy OLE — устаревшая технология, ей на смену пришел COM и ActiveX Ex_Soft В этой терминологии сам мелкософт ногу сломит. Сколько копий уже было сломано в процессе выяснения кто кому Рабинович. Вот надыбал ( оригинал ) _________________ "Helo, word!" - 17 errors 56 warnings ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2009, 23:37 |
|
||
|
скобки и объекты по умолчанию в javascript
|
|||
|---|---|---|---|
|
#18+
Яростный МечТ.е. все вспомогательные переменные, которые будут созданы внутри кода, будут локальными и уничтожатся по завершении вызова функции. Плюсы - освобождение памяти. на память пофигу, она и так освободится, если, конечно, не ляпнуть туда откровенный мемори лик или не притянуть внешние переменные. Основная цель - полная изоляция и инкапсуляция. Первое - мы можем использовать внутри любые имена и не бояться влезть с кем-то в конфликт или загадить глобальное пространство имен, второе - можно объявить и скрыть переменные, чтобы они были недоступны извне. Например: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2009, 00:18 |
|
||
|
|

start [/forum/topic.php?fid=22&fpage=299&tid=1455065]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 390ms |

| 0 / 0 |
