|
|
|
Как локальные переменные сделать глобальными?
|
|||
|---|---|---|---|
|
#18+
Как выполнить функцию так словно она выполняется в глобальном контексте? this понятно можно выставить как fn.call(window) но как быть с переменными, они же станут локальными? Т.е. Нужно чтобы fn = function(){ var a = 1 ... } Выполнилось также как var a = 1 Во втором случае a будет глобальной переменной, а в первом нет, она будет локальной и потеряется. Зачем мне это нужно? Мы переводим одну существующую систему на AMD загрузчик, и соответственно нужно обернуть существующие файлы в функции. Но проблема в том что они не расчитаны на AMD и многие из них используют глобальные переменные и если их так просто обернуть то перестанут работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2014, 16:33 |
|
||
|
Как локальные переменные сделать глобальными?
|
|||
|---|---|---|---|
|
#18+
private, ммм, убрать ключевое слово var у переменных в функции и вызывать через fn.call не вариант? Грубо конечно, но первое, что в голову приходит Код: javascript 1. 2. 3. Код: javascript 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2014, 18:57 |
|
||
|
Как локальные переменные сделать глобальными?
|
|||
|---|---|---|---|
|
#18+
Я не могу менять исходники потому что их несколько сотен Точнее могу но только автоматически - например обернуть каждый из них в дефайн функцию. Хотя, можно использовать парсер и преобразовать переменные автоматически, но это тоже потребует времени. Но похоже другого варианта всеравно не остается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2014, 00:46 |
|
||
|
Как локальные переменные сделать глобальными?
|
|||
|---|---|---|---|
|
#18+
jQuery// Expose jQuery and $ identifiers, even in // AMD (#7102#comment:10, https://github.com/jquery/jquery/pull/557) // and CommonJS for browser emulators (#13566) if ( typeof noGlobal === strundefined ) { window.jQuery = window.$ = jQuery; } Только так. Убрать var будет неоднозначность если візівается из функции где уже есть такое имя (будет браться не глобвльная а локальная из вызываемой функции). А лучше рефакторинг фф пользу отказа о глоюальных переменных раз уж у Вас АМД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2014, 00:48 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=38827571&tid=1446455]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
247ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 539ms |

| 0 / 0 |
