Показать сообщение отдельно
  #16 (permalink)  
Старый 24.10.2016, 05:26
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,138

Сообщение от Aetae Посмотреть сообщение
vlad35, тогда тебе только этот вариант. На остальные не смотри, это просто извращенные развлечения.)
имхо: Тот вариант это рекурсия с созданием замыкания при этом еще долго живущая т.к. ссылка на функцию живет в SetInterval. Интерпретатору приходится каждый раз на вызов создавать контекст(окружение) для исполнения таких функций что просто ужасно для производительности. Тут как раз и нужно использовать чуть ли не единственную полезную фичу из ES6 стрелочные функции которые исполняются в текущем контексте.

что то вроде
<div style="width:300px; height:300px" id="col"></div>
<script>
	var color = [];
	var el = document.querySelector('#col');
	var f=()=> (el.style.background = color.shift()) && setTimeout(f,100);
	
+function(){  // заполняет массив цветов
var i=0,R=G=0,B=15,t=P=>P.toString(16),P=()=>color.push("#"+t(R)+t(G)+t(B));
while(i<16)P(R=i++);while(i>0)P(B=i--);while(i<16)P(G=i++);
while(i>0)P(R=i--);while(i<16)P(B=i++);while(i>0)P(G=i--);}();f()
</script>
Ответить с цитированием