|
|
|
В чем основная фича делать так, как например это реализовано в jQuery?
|
|||
|---|---|---|---|
|
#18+
Всем привет. Заметил, что например в той же jQuery все плагины и сам jQuery пишется так: Код: javascript 1. 2. 3. 4. 5. Я так понимаю, тут как то через замыкание в глобальном объекте window создаются все переменные jQuery. Зачем так делать? В чем разница между обычным подходом, когда просто создаются глобальные переменные и классы: var a, b, ...; .. Есть ли по этому поводу какой-либо best practices? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2012, 23:49 |
|
||
|
В чем основная фича делать так, как например это реализовано в jQuery?
|
|||
|---|---|---|---|
|
#18+
у Стефанова что-то есть на эту тему... не помню точно, вроде он пишет что так быстрее... почитайте в общем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2012, 23:57 |
|
||
|
В чем основная фича делать так, как например это реализовано в jQuery?
|
|||
|---|---|---|---|
|
#18+
Код: javascript 1. 2. 3. 4. Вот так делают для того, чтобы объявить функцию без имени и тут же ее выполнить. Т.к. имени нет, больше повторно ее никто случайно не запустит. В функцию нужно оборачивать, чтобы ограничить область видимости тех переменных, к которым доступ не требуется. Соответственно для создания глобальных переменных внутри функции можно и без явного указания window обойтись, но лучше приписывать. а передается параметром этот самый window скорее для гибкости. Чтобы при необходимости можно было бы передать иной объект. Если плагин глобальный и совесть не мешает замусоривать window, то разумеется нет необходимости передавать его параметром, т.к. его имя на данный момент "стандартно". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2012, 23:57 |
|
||
|
В чем основная фича делать так, как например это реализовано в jQuery?
|
|||
|---|---|---|---|
|
#18+
unicornmirageВ чем разница между обычным подходом, когда просто создаются глобальные переменные и классы: var a, b, ...;а и b не засоряют глобальную область, инкапсулируются внутри функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2012, 23:57 |
|
||
|
В чем основная фича делать так, как например это реализовано в jQuery?
|
|||
|---|---|---|---|
|
#18+
Зачем с "undefined" так делают - не очень понятно. Видимо, раньше в каких-то браузерах такого объекта не было, и обращение к нему вызывало ошибку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2012, 00:02 |
|
||
|
В чем основная фича делать так, как например это реализовано в jQuery?
|
|||
|---|---|---|---|
|
#18+
Яростный Меч, Возможно, чтобы получить настоящий undefined, если вдруг его переопределил кто-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2012, 09:02 |
|
||
|
В чем основная фича делать так, как например это реализовано в jQuery?
|
|||
|---|---|---|---|
|
#18+
и window и undefined пробрасываются - чтобы при сжатии компрессором жалось лучше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2012, 18:50 |
|
||
|
В чем основная фича делать так, как например это реализовано в jQuery?
|
|||
|---|---|---|---|
|
#18+
12121211212и window и undefined пробрасываются - чтобы при сжатии компрессором жалось лучше с undefined понятно - он сожмется, в связи с этим вопрос - а это следует применять только лишь там, где в коде много undefined. но зачем сжимать window - если его можно просто не использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2012, 22:22 |
|
||
|
В чем основная фича делать так, как например это реализовано в jQuery?
|
|||
|---|---|---|---|
|
#18+
unicornmirageно зачем сжимать window - если его можно просто не использовать. Правила хорошего тона - использовать. P.S.: А компрессорного фанатизма в условиях HTTP 1.1 никогда не понимал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2012, 22:53 |
|
||
|
В чем основная фича делать так, как например это реализовано в jQuery?
|
|||
|---|---|---|---|
|
#18+
unicornmirage с undefined понятно - он сожмется, в связи с этим вопрос - а это следует применять только лишь там, где в коде много undefined. up to you unicornmirageно зачем сжимать window - если его можно просто не использовать. зависит от того, что вы разрабатываете, можно и не использовать. но, к примеру, window.addEventListener выглядит несколько более читабельным чем addEventListener, да и замокать при случае можно, тоже может быть полезно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2012, 23:11 |
|
||
|
В чем основная фича делать так, как например это реализовано в jQuery?
|
|||
|---|---|---|---|
|
#18+
Ок, многие рекомендуют инициализировать все свои объекты в своем namespace. Вот есть к примеру такое замыкание: window.myNamespace = window.myNamespace || {}; Код: javascript 1. 2. 3. 4. 5. 6. Анонимная функция при этом отработает один раз, но, она разве не останется висеть в памяти, т.к. через замыкание она удерживается объектом window.myNamespace? В чем тут эффективность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2012, 10:43 |
|
||
|
В чем основная фича делать так, как например это реализовано в jQuery?
|
|||
|---|---|---|---|
|
#18+
unicornmirageона разве не останется висеть в памяти, т.к. через замыкание она удерживается объектом window.myNamespace?никто никем не удерживается. код будет таким: Код: javascript 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2012, 15:51 |
|
||
|
|

start [/forum/topic.php?fid=22&fpage=147&tid=1448967]: |
0ms |
get settings: |
11ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
32ms |
get topic data: |
5ms |
get forum data: |
2ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 321ms |

| 0 / 0 |
