Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 12.05.2012, 21:11
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от nerv_
Это твоя проблема, что ты не можешь придумать хорошие имена. Не вникая в суть - stepСolumn
В сложном выражении даже с такими именами будет сложно разобраться, для сложных выражений, на мой взгляд, лучше закомментировать переменные с короткими именами (ну это вопрос вкуса).

Сообщение от nerv_
snake - первая функция в листинге
В твоём примере используется один push в цикле, в моём придётся использовать три, то есть 3 push() vs 2 concat(), если concat намного более затратная операция по сравнению с push, тогда, конечно смысл есть, а если нет, то у меня получилось не сложнее (за сам способ спасибо).

Сообщение от B@rmaley.e><e
Замыкания.
Можете пояснить, не совсем понятно как замыкания могут заменить глобальные переменные.
Ответить с цитированием
  #22 (permalink)  
Старый 12.05.2012, 21:27
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

(function(){
  var localVariable = 5;

  window.getLocalVar = function () { return localVariable; };
  window.setLocalVar = function (val) { localVariable = val; };
})();

alert( typeof localVariable);
alert( getLocalVar() );
setLocalVar(10);
alert( getLocalVar() );
Ответить с цитированием
  #23 (permalink)  
Старый 12.05.2012, 22:11
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

из этого кода следует, что ты прав Прикольное кино Даже если явно задать длину массива new Array(count) и при записи обращаться непосредственно к каждому элементу Array[index] ситуация почти аналогична. Вру )
var repeatCount = 100000;
var pattern = "text";
var arrayFixSize = new Array( repeatCount );
var startTime;
var counter;
var line = "";
var arr = [];


for( startTime = new Date(), counter = repeatCount; counter > 0; counter-- ) {
	line += pattern;
}

alert(
	'concatenate - ' + ( new Date() - startTime )
);

/*********************************************************/

for( startTime = new Date(), counter = repeatCount; counter > 0; counter-- ) {
	arr.push( pattern );
}

arr.join( '' );
alert(
	'array + push - ' + ( new Date() - startTime )
);

/*********************************************************/

for( startTime = new Date(), counter = repeatCount; counter > 0; counter-- ) {
	arrayFixSize[ counter ] = pattern;
}

arrayFixSize.join( '' );
alert(
	'array[ index ] - ' + ( new Date() - startTime )
);


Итог: во всех браузерах разное время, с точностью до наоборот
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 12.05.2012 в 22:24.
Ответить с цитированием
  #24 (permalink)  
Старый 12.05.2012, 22:15
Новичок на форуме
Отправить личное сообщение для StelZ Посмотреть профиль Найти все сообщения от StelZ
 
Регистрация: 19.04.2012
Сообщений: 8

bes, не пойму по какому принципу работает данная программа. она же должна присваивать букве определенное число, равное номеру ряда и столбца (первый ряд(1) и первый столбец(1) - буква а - 11), и выводить переведенный текст в другое окошко
Ответить с цитированием
  #25 (permalink)  
Старый 12.05.2012, 22:28
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Получается что к глобальным переменным придётся обращаться не напрямую, а через get/set методы, наподобие того как в Delphi обращаются к полям через свойства, только без сохранения синтаксиса обращения.
И всё это, как я понимаю, из-за того что не обеспечена модульность (весь скрипт по каким бы он файлам не был разбросан воспринимается как единый модуль).
Ответить с цитированием
  #26 (permalink)  
Старый 12.05.2012, 22:35
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от StelZ
bes, не пойму по какому принципу работает данная программа. она же должна присваивать букве определенное число, равное номеру ряда и столбца (первый ряд(1) и первый столбец(1) - буква а - 11), и выводить переведенный текст в другое окошко
Можно, конечно, и так сделать, то есть считать конечным шифром числа.
Я взял за основу описанный в википедии метод 2, когда получают координаты, затем к строке x-координат приписывают строку y-координат, а затем последовательно берут пары из строки, считают их координатами и переводят в буквы по той же таблице, то есть конечный шифр - слова.
Ответить с цитированием
  #27 (permalink)  
Старый 12.05.2012, 22:48
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от bes
Получается что к глобальным переменным придётся обращаться не напрямую, а через get/set методы, наподобие того как в Delphi обращаются к полям через свойства, только без сохранения синтаксиса обращения.
Нет, неправильно получается. get и set функции приведены для примера, вместо них можно было реализовать любые другие функции, работающие с нужной переменной.
Ответить с цитированием
  #28 (permalink)  
Старый 12.05.2012, 22:56
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от B@rmaley.e><e
Нет, неправильно получается. get и set функции приведены для примера, вместо них можно было реализовать любые другие функции, работающие с нужной переменной.
Это понятно, речь-то шла о чтении/установке переменной, которая должна была заменить глобальную.
Ответить с цитированием
  #29 (permalink)  
Старый 12.05.2012, 23:18
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

А Вам нигде из клиентского кода не нужно ею пользоваться.
Ответить с цитированием
  #30 (permalink)  
Старый 12.05.2012, 23:24
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

nerv_, IE8 вообще подвисает на этом скрипте (потом отвисает выдавая результаты).
Хотя concat чаще выигрывает, изредка push немного опережает.

Сообщение от B@rmaley.e><e
А Вам нигде из клиентского кода не нужно ею пользоваться.
В смысле??
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
шифрование строки по ключу JAre Библиотеки/Тулкиты/Фреймворки 26 26.02.2015 16:06
Кликаем по квадрату - он сдвигается и перекрашивается. Как это осуществить? Kaur Общие вопросы Javascript 19 27.01.2012 07:06
Шифрование ссылки Korvin Общие вопросы Javascript 4 27.02.2009 13:05