По поводу глобальных/локальных переменных:
Разве функция работает не быстрей, если обращается к локальным переменным? |
Dmitry A. Soshnikov, innerHTML тоже не используете?
Цитата:
|
Kolyaj, я что-то не пойму вашу позицию =)
Цитата:
Цитата:
|
Цитата:
В данном же случае приходится в функции каждый раз создавать огромный массив. Соответсвенно создать используемые данные всегда лучше 1 раз... Не стоит также забывать, что джаваскрипт - интерпретируемый язык... Так что чем больше строк - тем медленнее работает... |
ZoNT,
Цитата:
P.S.: а вот к вопросу о памяти (если функция выступает в качестве конструктора) - лучше, ествественно, хранить однотипные сущности в одном месте (как правило - в прототипе конструктора). |
Цитата:
Или ты хочешь, чтобы я тебе пример привёл с цифрами, а потом отнекиваться будешь??? |
Цитата:
Цитата:
|
<html> <body> <script type="text/javascript"> // local var function F1(){ var a = []; for (var i=0;i<1000;i++) a.push(i); var str = []; for (var i=0;i<1000;i+=10) str.push(a[i]); } var start = new Date(); for (var i=0;i<1000;i++) F1(); var res1 = (new Date())-start; //********************************** // Global var var arr = []; for (var i=0;i<1000;i++) arr.push(i); function F2(){ var str = []; for (var i=0;i<1000;i+=10) str.push(arr[i]); } start = new Date(); for (var i=0;i<1000;i++) F2(); var res2 = (new Date())-start; //********************************** alert([res1,res2]); </script> </body> </html> |
ZoNT, ты утверждаешь яро что-то, пытаясь аргументировать практически, - это смело, я ценю, но, дружище, давай так - если приводишь практические примеры, то, пожалуйста, без мухлежа =) Твой опыт (если все по-честному относительно локальных/глобальных переменных) должен быть таким:
<html> <body> <script type="text/javascript"> // local var function F1(){ var a = []; for (var i=0;i<1000;i++) a.push(i); var str = []; for (var i=0;i<1000;i+=10) str.push(a[i]); } var start = new Date(); for (var i=0;i<1000;i++) F1(); var res1 = (new Date())-start; //********************************** // Global var var arr = []; var str = []; function F2(){ for (var i=0;i<1000;i++) arr.push(i); for (var i=0;i<1000;i+=10) str.push(arr[i]); } var start = new Date(); for (var i=0;i<1000;i++) F2(); var res2 = (new Date())-start; //********************************** alert([res1,res2]); </script> </body> </html> И тогда результаты соответсвуют теории. А вообще, повторю снова, сначала теория - 10.1.4 Scope Chain and Identifier Resolution |
Цитата:
Цитата:
Цитата:
Самый яркий пример использования document.write -- вывод текста на страницу только при условии включенного JS. Цитата:
|
Часовой пояс GMT +3, время: 19:04. |