Приятного просмотра

Понимание javascript - замыкания, контекст, callback.

Опубликовано: 2 года назад
81 651 просмотров
👎 27
Скопируйте и вставте на Ваш сайт

Описание

Волшебное слово this. Понятие контекста.
Способы вызова функций. Замыкания.
Коллбеки. Коллбеки и контекст.

Субтитры

да ну что всем доброго вечера пожалуйста плюсики в чат если есть звук хорошо слышно нормально видно так или видно немножко мутно но это ладно вид здесь не главное главное это экран вижу в чате ожесточенные споры по поводу технологий для верстки про bootstrap и интернет эксплорер и smart grid исчез с гридо но вебинар сегодня совсем не про это вот.

Поэтому давайте сразу начинать говорить про java скейт так ну традиционно представлюсь зовут меня дмитрий вот вижу в чате много знакомых ников то есть наверно больше половинку уже у нас бывали когда-то на вебинарах него одну для тех кто первый раз соответственно вот он я ссылочка на сайт если кому интересно почитать там про портфолио еще про.

Что-то вот новость сразу давайте java script у перейдем у меня к вам вопрос в кого какие начальные знания так вот спрашивают будем говорить чисто про клиентский java script да чисто про то что в этом языке выносит мозг новичкам так 0 0 снова 0 кое-что умею базовое но я про сразу хочу вас предупредить да там было написано про начальные знания на страничке записи что ну.

По-любому надо хотя в основах программирования разбираться да то есть соответственно все вот эти вот темы переменные ветвления функции циклы и массивы вы должны понимать чтобы хоть что-то понять сегодня вот просьбы дружном плюсануть если эти тему понимаете ну вот потому что без них как бы смотреть на нюансы java скрипта смысла нет так но вот здесь вроде до.

Плюсики дружно и еще конечно хорошо будет тем кто вообще хоть чуть-чуть понимает как же вас crypt работать с элементами кто не знаю там либо на ютюбе видел вебинар про работу с дом в java скрипте понимание java script называется либо кто сам вручную хотя бы раз писал бинду лот документ к вере селектор что-то получили он клик присвоить фанкшн то.

Есть вот на такую аудиторию рассчитан этот вебинар да то есть те кто знает основы хоть раз писал там какое-нибудь событие на элемент подвешивал в простейшем java скрипте вот и собственно говоря периодически путается с жестокими вещами типа там слова из контекста и прочих других прикол так да вот плюсы у нас большом количестве это хорошо вообще молодцы то что в пятницу пришли потому.

Что как bm пятницы делал такое 600 с лишним человек записано 140 сети это очень даже неплохо и так что у нас сегодня в программе давайте нет давайте я вот так вот верну обратно и не к вам такой вопрос скажите бы все когда-то были новичками или являетесь новичками сейчас вот если вещи которые выносят вам мозг когда вы читаете документацию по java script а.

Когда вы смотрите все эти примеры либо когда вы открываете код на jessie j каире да то есть на чистом же сели на джиг вере вот если есть то какие с чем они связаны так замыкание вижу слово да вот она есть у нас сегодня в программе not прототипа это посерьезнее дает как бы не сегодняшнего занятия так то.

Понимание сложного кода а еще что-то на джесс показывает джек вере тогда замыкание надо замыкание несложно сама к ним и посмотрим так вот звезда отличное слово вот нюансы опыта же верно вот в принципе на я вижу где-то сейчас процентов на 50 своими комментариями вы попали уже в программу курса java программу вебинар точнее какой сад ладно поток так.

Вот асинхронность колы плай вот вот вот уже хорошие слова пошли вот сейчас все это будем обсуждать значит сразу популярный вопрос вот в этот раз его никто не задает но и сразу на него отвечу вот если кто спрашивает будет ли запись да вот ссылочка подписывайтесь запись там будет вот и callback их наконец-то я дождался этого слова да то есть кубики.

Это тоже очень такая суровая жесть для новичков вот мы сейчас с вами будем аккуратно все обсуждать значит по продолжительности где-то час двадцать да то есть вот до 21 10 до 21 20 я постараюсь уложиться в это время мы по средам бывает и два часа сидим на сегодня пятница да поэтому как бы сегодня я постараюсь очень так без растягивания рассказать все вот в.

Пределах там часа 20 чтобы все спокойно пошли смотреть телек в пятницу другие любимые дела делать так ну плюсуйте если готовы перейти непосредственно коду вот мы сейчас запускаем экран так и начинаем разбираться с примерами так ну вот экран должен был появиться у меня сегодня уже на бенз да то есть кто часто ходит на вебинар вид что постоянно.

Достаю людей над подам + + ну вот на сегодня как бы до вебинар не совсем для новичков поэтому уже нормально программа решил взять так ну ладно значит смотрите вот остановился на том что говорил с чего вообще стал думать подобный вебинар проводить да потому что потому что знаете вот джек вере очень часто новички встречают какие-то такие куски кода.

Ведь все новички несут сразу magic вере что-то писать и они там встречают потом как-нибудь вот такую фигню вот это сейчас не относится теме вебинара мы не будем такое писать то я просто показываю откуда растут как бы все проблемы да и там вот они встречают что-нибудь типа такое чего-нибудь вот типа вот такого вот смотрите сейчас может быть кто-то из вас узнает готовый код вот давайте.

Посмотрим так вот так вот так и вот тут еще что-нибудь такое не важно что будет написано вот кто-нибудь из вас встречал что-нибудь типа вот такого чека или в каких либо примерах сети которые вы видели так вот просьба написать кто как да конечно обычный кот так что происходит интересное про качество трансляции или про пример этого кода вот ну да вот я вижу много плюсов многие.

Говорят что такое в много видели кто-то пишет что сам так делал но вот смотрите в чем прикол вот почему подобные конструкции периодически новичкам выносят мозг вот именно с этим словом мы будем разбираться вот это вот слово зыс до такой вот очень короткое вроде понятное слово но она обратите внимание вот фиг разберешься что означает то есть мы с вами когда пишем этот код мы.

Единственное здесь понимаем это какую-то функцию которую вызвали дамы и в документации можно найти и селектор по которому получили элемент но и событие а вот все остальное она как бы без понимание чистого java скрипта понять очень-очень тяжело дается для понимания в частности что здесь означает это слово зиса откуда она здесь взялось да что здесь вот это слово здесь.

Означает да и ссылается это на 1 тоже не ссылается то на разные вещи и что такое вообще понять a ссылается куда-то вот именно вот подобные записи их непонимании многими новичками побудило меня сегодняшний вебинар сделать но сейчас будем разбираться с этим словом итак для того чтобы это слово посмотреть я сейчас покажу какую задачку которую мы будем решать.

Значит какую задачку мы с вами начинаем решать для того чтобы понять вообще что это за волшебное слово зыс вот скажите кто из вас как слова зыс понимает вот я вам только что его в каком-то примере показал да вот кто как понимает что за странное слово зыс так контекст вызова этот дар ну логично что переводится это слово как эта или этот но как его понять то есть что это за.

Ссылкой куда же она видео давайте мы сейчас напишем очень простой пример который просто напросто сразу покажет вам достаточно и начальные знания для того вебинара или нет вот смотрите у нас есть в html div anthems и в ней внутреннего лежит дефолтом дефолтом это у нас вот это вот квадратная штуковина и мы должны при клике на эту квадратную штуковину задать.

Ему дополнительный класс который поставит рампу вот который поставит рамку вокруг этого элемента соответственно давайте вот те кто и в java скрипте не совсем новички скажите чего с чего начинаем здесь вот если мы хотим решить такую задачку что при клике на этот элемент мы должны задать ему какой-нибудь дополнительный класс который ну там что-нибудь даст вот.

Андрей пишет с долларов доллар это ответ неправильный у нас вебинар на понимание у нас нет никакого совершенно джек верю у нас чисто java-script соответственно мы действительно создаем какую-то переменную например переменную этом которую запоминаем вот какой-либо конкретный элемент document допустим к вере selector и получаем вот этот вот самый.

Элемент ой там с которым хотим работать и вот тут вот сразу что надо понимать всем новичкам да и не только то что java script это у нас как ни странно язык в котором полностью всего объектно ориентирована оказывается то есть даже вот этот вот вот это слово window является объектом да несмотря на то что мы уже вас крипте пишем процедурно но все равно по сути.

Везде есть вот эти так называемые объекты вот ой там это у нас будет объект который содержит внутри но как бы который является элементом то то есть является вот этим html тегов который в рамках браузера в рамках java скрипта представлен как объект у которого есть свойство методы и события и мы соответственно с вами.

На это поэтом вешаем какой-нибудь события onclick и сейчас я для начала просто напросто поставлю один чтобы вы подтвердили что по уровню начальных знаний вам это дело понятно вот давайте сейчас обновлю страничку так так вот смотрите поэтому onclick присвоить фанкшн и погнали вот посмотрите на такой кусок кода просьбы плюсануть если этот кусок.

Кода всем абсолютно понять да то есть если нет таких кто вот такой вот кусок кода как бы по смыслу совершаемых действий да не понимает потому что вот без понимание такого простейшего года все таки этот вебинар смотреть тяжко так да хорошо вижу кучу плюсов до этом это опечатка вот на это совершенно правильно это опечатка вот так мы берем как бы положенности.

Селектор ой там сайту и вот видите на экране alert один успешно выбросился так вот только с этого момента начинается тема занятия и что здесь есть интересно вот смотрите нам сейчас надо с вами взять и каким-либо образом задать вот этому этому класс потому что я сейчас покажу вам css видите у нас для ой там сайтов поставлены какие-то все со стиля там.

Ширина высота фон margin padding еще какая то фигня а вот по классу айтемы xiv у нас ставится рамка 3 пикселя solid и золотистый цвет и вот нам надо при клике на этот элемент задавать ему текущей класс и вот отсюда как раз таки начинается работа либо с замыканиями либо с нашим с вами волшебным словом здесь вот давайте разбираться скажите пожалуйста кто в курсе на что здесь.

Будет ссылаться вот это странное и удивительное слово зыс так это вот самый первый главный момент который новичкам потихоньку выносит мозг так на этом да на перемену это все пишут но честно говоря я тут не соглашусь но по смыслу окажешь правильному писали но то что он ссылается на эту переменную это просто совпадение не более того значит снова зыс это всегда ссылка на текущий.

Контекст вызвало вот это вот очень сложная для начинающих понятия которое является ключом вообще к пониманию всего чтобы java скрипте происходит значит смотрите вот у любой функции всегда есть некий контекст вызова так называемый и он всегда разные в зависимости от того как эта функция в java скрипте было вызвано давайте мы с вами попробуем сделать сейчас вот что я напишу здесь.

Функцию и назову его ее как-нибудь active white так optifine вот будет такая функция и я в рамках этой функции смотрите что сделал я просто напишу консоль блок жизнь и вот теперь некоторые прикол вот смотрите я не подвешиваю книг я просто беру и вызываю актив ой там просто как вот в простейшем программирование с круглыми скобками видите я использую слово за из.

И просто тупо вызываю эту функцию вот кто что ожидает увидеть сейчас в рамках слабо зыс куда будет ссылаться это слово так вот лежу в чате ответы window да это вот ребята уже продвинутый значит все что есть в объекте вижу комментарий нет это будет ссылаться на window значит смотрите когда вы проходили основы программирования вы их по-любому где-то.

Проходили изучали там либо на вебинарах ли книгах либо просто в сети либо в универах либо в школе функции в большинстве языков вы никогда не задумывались как они вызываются да то есть вот функция для вас всегда было просто каким-то работникам которого в вызвали и он выполнил результат и никогда вообще не было речи про какой-либо контекст вызывает и функция.

Так вот что такое контекст функция это тот объект который как бы ее вызовет получается то есть объект которому она применяется вот с точки зрения жизни как это попробовать понять вот смотрите есть такая функция бежать до какие действия совершает эта функция функция бежать ну то есть соответственно левой ногой правой ногой так ну или тут можно цикл.

Написать да то какой левой ногой правой ногой быстро надо ну вот какая такая фигня но что есть контекст вот бежать это просто явление да то что человек быстро шевелит ними человек то что кто-то быстро шевелит левой ногой правой ногой вот и при этом он шевелит как бы смотрите очень важно понимать что когда он бежит он шевелит мечте нибудь нагоя своей да то есть как бы вот так.

Вот получается правда может если он быстро шевелит левой и правой ногой но не свои это не бег это что-то другое вот и поэтому смотрите что такое контекст вот есть такое понятие как бег да вот бежать примерно такая функция и соответственно получается есть где-то в мире объекта вот есть человек да вот где-то кот сидит вот катя россии да где то не знаю вот стул поставлен вот стул.

Стоит вот и когда мы с вами вызываем какую-то конкретную функцию то контекст это тот объект которому она применяется то есть если функцию вы вызвать в контексте этого объекта побежит человек в контексте этого объекта побежит код в контексте этого объекта стул будет тоже пытаться шевелить ногами то есть вот она понятие контекста это некая функция которая тип универсальная и когда оно.

Вызывается в контексте какого-либо объекта это значит что она применяется как бы к нему да и вот за будет ссылаться на этот текущий объект вот что такое контекст вот плюс аните кто интуитивно это понимает на примере мира так давайте посмотрим вопросы тоже не стесняйтесь задавать потому что тема не самая легкая интуитивно просто я вот java script я будут с ней прикола так.

Вот а что такое вызов функции java скрипте без контекста да что такое вызов java скрипте функции просто в таком виде optifine там и круглые скобки это означает то что функция вызывается в контексте всего мира вот у нас есть вселенная есть весь мир of java script и весь мир это получается наш объект который называется windows корневой объект done вот и до.

Соответственно поэтому смотрите вот если мы просто вызвать какую-то функцию бежать без контекста она применяется просто в мире во всем а когда мы в скрипте и вызываем без контекста она применяется в рамках window а теперь смотрите другой пример вот я сейчас в консоли покажу что мы с вами были правы видите window да то есть вы сослалась на.

Винду на корень дом вот а сейчас я сделаю вот так я напишу ой там он книг присвоить optifine вот это кстати тоже интересный момент который периодически новичкам выносит мозг речь здесь не основе здесь речь о том что смотрите мы с вами название функции пишем без круглых скобок вот давайте тот момент тоже уяснил скажите почему здесь.

Название функции пишется без круглых скобок вот с какой стати почему здесь не ставится вот так например да так нет параметров переменная сохранение функции она выполняется не сразу алексей абсолютно прав это ссылка да-да-да-да-да совершенно верно но тем не менее по чату я вижу что очень многие не знают правильного ответ на то что.

Больше половины отвечать на брань но сейчас уже половина отвечать нормально так вот смотрите в чем прикол давайте назовем эту даже выносом мозга номер один для новичков то что иногда в java скрипте функции мы пишем с вами с круглыми скобками иногда без так вот что такое круглые скобки вот у этой функции это означает то что мы ее вызвали прямо сейчас то есть смотрите когда функция.

Объявлена и мы пишем после имени круглые скобки это значит моя прямо сейчас вызываем а когда мы пишем без круглых скобок это значит что мы как бы просто присваиваем ссылку на эту функцию вот давайте такой пример с точки зрения жизни вот есть функция которая называется бежать вот если мы человеку напишем бежать и круглые скобки это.

Значит он побежит прямо сейчас а что мы делаем когда подвешиваем события мы например коту говорим увидишь в собаку присвоить бежать заметьте без круглых скобок может если бы мы их поставили бы сразу стартанул сейчас какие-либо в чате правильно пишет сразу стартанет вот там ему пишем увидел собаку значит после этого побежал то есть как бы фишка в том.

Что мы с вами не вызываем функцию сейчас а мы просто говорим что нужно делать в какой то момент времени и вот только потом она будет вызван эта функция когда произойдет данное событие например клика по элементу и соответственно я сейчас обновлю с помощью 5 браузер смотрите вот я ее вызвал с круглыми скобками у меня вышел объект window как зыс я нажимаю на этот элемент.

Что у меня сейчас выйдет с помощью консоль мог за в данном примере так что у меня тут взыскан то будет интересно видеть и присвоил пойду до деф на котором произошло это событие правильно видите вот какое какая разница в java скрипте вроде бы одна и та же функция может быть вызвана в разном контексте.

Вот пожалуйста в глобальном контексте вызов вот вызов рамках нашего с вами дива и когда мы с вами в java script я такие функции пишем мы как правило сразу стараемся понять в каком контексте эта функция будет работать ну потому что функция нормального всех контекстах как правило не работает если она должна делать ну какое-то конкретное действие.

Да и соответственно в жизни все тоже совру как бы не бывает универсальных функций которые там и из в контексте мир и бы работали хорошо и в контексте там объекта который бегать умеет вот поэтому мы с вами вот убираем такой вызов функции и думаю теперь что же написать здесь вот теперь у нас все упрощается мы с вами когда пишем функцию актив ой там просто.

Считаем то что здесь всегда будет ссылаться на текущий объект да то есть на тот объект на который мы с вами клип так вот спрашивают азис это реальная переменная внутри функция которая принимает которая смотрите принимает это да это можно назвать переменной вот это слово зыс и это ссылка на текущий объект то есть это ссылка на тот объект с.

Которым сейчас произошло какое-либо событие лучшим это увидим когда объектов будет блога но вот представьте эти вот сидит стая котов да вот откаты сидят 1 2 3 4 и у них у всех в инстинкте заложено что что если он увидел собаку он куда либо paper подальше и вот есть это значит события которое.

Называется увидел собаку и есть метод бежать так вот как прописывается этот метод с точки зрения java скрипта он будет выглядеть как-то так он док да он док присвоить function например давайте так и запишем из ран ну вот что-то типа такого соответственно вот на что ссылается текущая слова зыс дано того кота с кем приключилась такое событие то есть эти тут мирно.

Развлекаются он там про март как раз пишу да вот а тут коты мирно развлекаются а вот этот друг взял и увидел собаку все соответственно слова зыс в этот момент времени ссылается на не мог потому что с ним приключилось это событие точно также java скрипте слова с это ссылка получается на тот элемент видите по которому произошло событие то.

Есть я щас кликаю на этот div видите ссылка ровно на него вот как то так так выпрессуйте кто в целом понял эту концепцию не знал ее ранее на то что вот здесь от такая ссылочка в рамках нашей функции так и что мы можем делать вот теперь мы можем работать с этим элементом по всем правилам которые предполагает дом объектная модель документа.

Но в частности если я не ошибаюсь там есть такое поле которое называется класс лист допустим вот вам она вот так вот пишется у него есть метод по уму того ну вот который переключает классно есть если класс есть он его удалит если класса нет его добавит и я вот тут пропишу какой-нибудь класс типа идти fight вот как то так.

Давайте посмотрим чего будет происходить с точки зрения работы кода в браузере вот есть наш элемент div да где в класс и optifine точнее нет а это миксер перепутал название класс ну и соответственно смотрите вот у нас есть дев гляньте на него нажимаю к нему применяется вот этот вот класс айтемы xiv нажимаю еще раз он исчезает то есть вот как пример вызова данной.

Функции в каком-либо контексте до при этом кто как считает а что произойдет если я сейчас эта функция вызова просто вот тупо вот так если актив этом напишу и круглые скобки после нее но что произойдет вызвали такую штуку в рамках всего мира в глобальном контексте так просто разобраться и все рамку body дома так и нему ко всему рамках базе но короче короче.

Неправда ваша вот вы скажете если функция бежать было вызвано вне контекста вот чего все объекты в мире побегут шталь или какой-то самый первый объект в мире побежит земля что ли побежит куда-то об этом покажется вот но тут на самом деле на самом деле произойдет следующая видеть он пишет зыс класс листа занда fight он говорит ну нету в мире такого понятия как плов с.

Лист вот он есть у объектов тегов дата вот у этих элементов долл у виндовый никакого класс ли станет он есть у тега body например да класс лист но винду это не так бать винду это просто вообще весь мир это глобальный объект java script а внешняя сам эта огромная обертка видите насколько важен контекст вызова функция то есть вот пока мы вызывали его с нормальным контекстом этот метод все.

Было хорошо вызвали с фиговым контекстом в данном случае сразу все плохо то есть вот такая вещь которая возможно очень непривычно для тех кто привык процедурному программированию особенно те кто во front-end идет спички из других языков на то что у нас с вами контекст критически важно кирилл спрашивает и то есть замыкание нет это не замыкание кто знает что такое.

Замыкание вот мы сейчас на него посмотрим на замыкание так также добавляет и удаляет класс до того он класс переключает то есть он делает добавление класса если класс такого нету элемента и удаляет класс если он уже есть сама вызов сама вызов это рекурсия два провода соединить так что ссылается на себя нет не так все.

Они то замыкание это использование переменные которые объявлена выше тут сразу пожалуй стоит сказать то что мы с вами пока изучаем все эти примеры на стандарте из 5 потому что есть у него все таки пока поддержка маловато чтоб его в чистом виде использовать ее 99 процентов кода сейчас сети написано еще на старом стандарте вот и его приколы пока никуда не деваются.

Их все равно все надо знать новый стандарт ну там тоже сама рачками но позволь так вот давайте мы сейчас с вами посмотрим на такое понятие как замыкание перед тем как про него рассказывать я вам хочу показать вот два абсолютно идентичных приема вот смотрите вот что мы напишем так поэтому он клип присвоить и optifine что мы напишем вот так внимание разница не будет совершенно не.

Какой то есть что я так пишу что я вот так пишу это получается все ровно одно и тоже потому что самое главное что функция какая-то с вот такой строчкой действия присвоен а в рамки нашего с вами события onclick да то есть будет вызвана так называемой анонимная функция с этим же самым контекстом но есть вот какая интересная разница что такое замыкание это.

Объявление одной функции внутри другой функция вот посмотрите как непривычно получается у нас есть раз функция которая наверху вот и и фигурные скобки и у нас есть вот фигурные скобки тип уже у другой функция неожиданно может быть особенно тех кто привык к каким-то классическим языкам и что же это нам дает вот такое вот замыкание она дает нам следующее вот это внутренняя функция.

Она видит все переменные функции родительской я сейчас закомментирую вот эту строчку и смотрите что я сдела не вот эту строчку закомментировать я напишу здесь консоль но кайтом в рамках функция и смотрите я вот тут тоже напишу консоль но кайтов и мы сейчас попробуем их сравнить то есть я сначала вот так вот функцию вызову а затем я как у нас и.

Раньше была написана при свой актив ой там вот сюда вот пока это будет в коменте давайте посмотрим что будет происходить давайте даже лучше начнем с такой записи когда мы присваиваем название функции вот здесь к событие onclick ну смотрите как вы думаете вот с точки зрения классического программирования посмотрите есть функция.

Написанная где-то в вакууме и мы в ней обращаемся к переменной вот чему будет равна переменной у кого какие ощущения так вот вот вакууме функция и в ней мы делаем консоль лакает с точки зрения нормального классического программирования с точки зрения всех основ программирования да и правильные ответы то есть кто-то.

Пишет мол кто-то отдыхает совершенно верно это переменная просто-напросто не задано а этом из многих фант нет такой перемен мать ну откуда на здесь да вот функция стоит и все но а теперь смотрите небольшой прикол я просто переношу эту функцию эти файтов в внутри нашей функции windows год внимание на экран а по define что за чудеса.

Вот это как раз таки есть замыкание да это области видимости связанные замыкания провела здесь очень простой когда мы с вами объявляем одну функцию в рамках другой функции то это автоматически означает то что внутренняя функция будет видеть все переменные и функции внешне вот это вот классика замыканием java-script да все переменные которые здесь были объявлены.

С помощью слово var вот это вот внутренняя функция будет видеть и поэтому новичкам периодически кажется то что очень очень спокойно можно сделать знаете как вот так вообще тупо не использовать слово зы смотрите вот это вот код который получается достаточно легально гляньте получили этом поставили этом он клип функцию актив ой там и в рамках функция optifine там написали а.

Этом класс лист павел python эти вот эти по все нормально если кто думает что не нормально сейчас я покажу что это все работает смотрите да сработает все четкого и если внешняя переменная не через бар если это стандарты есть ис-6 и е6 не надо ecmascript 6 до то тогда все зависит от того слово которое вы здесь напишите вот если вообще варне писать дано будет видно абсолютно везде.

Чем замыкание отличаются зоны видимости по сути ни че то есть просто получается что мы и вот здесь вот в рамках одной функции объявляем другую функцию и в других языках программирования просто в отличие от java script а вот это эта функция внутренне она не будет видеть переменные и функции родительской а java скрипте она видит вот как пример замыкания то есть одна функция внутри.

Другой и эта функция независимо от контекста видят все переменные родительского метода вот плясать и кто понял этот прием прием на практике очень частый но есть конечно поговорки да и вот мы сейчас вроде слова пиши так просто замыкания да это реально не особо сложно такой страшный вот просят пример где часто встречается.

Понимаете она встречается вообще везде вы узнаете какой вот например пример можем придумать вот представьте давайте я нарисую час писать этот пример долго будет представьте у вас есть какая-то формочка вот и у вас есть кнопка и значит на каждый из этих полей подвешен свой обработчик типа при изменении значения поля сразу производится валидация формы и если у.

Нас форма валидного кнопку делаем активной а если него видному кнопку делаем неактивный да то есть если человек фигню пишут мой кнопку делаем серенькой и нажать нельзя вот это на каждом из полей надо повесить и тут разные поля галочки там selecta всякие и вот у них у каждого будет свой обработчик свой обработчик корректности и этот обработчик должен в зависимости.

От результата как бы кнопку выставлять дизайн reliable вот и как бы получается что в такой ситуации очень даже может быть что вот этот вот объект кнопки ссылка на неё хорошо чтобы было видно везде во всех этих обработчиков чтобы мне надо было там по селектору снова ее выдергивать а просто брать и как бы обращаться к переменной которая.

Видна за счет замыканий вот и такие примеры на самом деле всегда то есть почти везде замыкание используется а вот где они нам не помогут так это в случае когда у нас много элементов потому что изначально может показаться что типа на фиг нам вообще нужно это страшное слово за из если у нас с вами есть возможность помощью замыкания передать нормальную функцию до передать нормальный контекст.

Нормальную переменно однако смотрите какая фишка представьте что у нас с вами вот здесь будет мне один элемент на несколько и нам нужно каждый из этих элементов одинаково обрабатывать нужно делать так чтобы при клике на один конкретный элемент именно он становился подсвеченным определенным образ в определенные рамки.

Как вы думаете с чего начинается решение этой задачи с чего начнем так то есть у нас теперь не один элемент а много элементов так поверни на них о верном клик надо так пока предложение ниже обернуть и вот это джейк овский до такой посыл да то есть нужно как-то циклом пройтись правильно мы с вами получаем их не как один элемента как documentary select ролл мы получаем массив этих.

Элементов и теперь внимания мы должны взять и запустить цикл запускаем цикл for от соответственно 0 идет до этот цикл до длины массива поэтому sens вот всякие функции типич это наверно джек вы привыкли писать доллар получили дальше и вот и соответственно смотрите что получается то что раньше мы писали допустим ой там он клик и присваивали.

Сюда значение артефактов и все там было хорошо но теперь у нас нет переменной там у нас есть переменная anthems соответственно как дотянуться до одного конкретного элемента в этом переборе вот с помощью какой с помощью какой конструкции по ключу да ой там создать правильно вот здесь пока рано погодите засаде еще нет поэтому суд клик присвоить и.

Артефакт вроде бы все точно так же как и раньше да и если бы я в функции active ой там делала что-то простой пример делал боярд один посмотрите вот тогда при клике на любой элемент у меня бы реально выскакивал этот alert один видите здесь они рта один здесь 11 то есть абсолютно всюду этот планет выскакивают но возникает тепреь логичный вопрос а как мне дотянуться до какого-то.

Конкретного элемента в рамках функции optifine вот кто как считает плюсы-минусы пройдет такая запись или нет вот если атом подвешиваю события как как соответственно ой там сад аль может быть здесь я тоже какая-то msata обращусь к этому элемент да пока лежал отрицательные ответы так в цикле но до функция вне цикла не знаете к чему.

Это приведет к тому что переменной в рамках этой функции нет а если она и есть она как бы сместилась уже на lens + 1 то есть здесь не будет того номера который нам нужен и события на группу элементов это именно тот конкретный пример где без слова изыском с вами просто не обойтись вот как это было в ситуации с кучей котов да каждому коту подвесили события.

Но увиденную собаку взять и побежать но побежать должен конкретно именно тот код который собаку выведет правда ведь и поэтому в данном примере никак нельзя обойтись без контекста единственный шанс правильно сделать обработчик такой штуки это использовать здесь вот это волшебное слово из давайте посмотрим на результат обновляю вот смотрите какое чудо да все элементы.

Классные отлично работают нажимаю нажимаю все очень четко да на кого нажали ктому и применилась вот здесь вас не спасут никакие не замыкания не какие-то другие приемы это все совершенно бесполезно то здесь единственное что помогает это именно работа с контекстом именно слова зыс ну что плюсуйте кто понял этот пример вот вопросы обязательно пишите если есть.

Непонимание по каким-то моментом так так хорошо так что растут с плюсами она отлично плюсов много первых чат улетел сильно здорово замыкание тут вообще не прокатят но смотрите александра замокание тут не прокатит потому что у вас будет перемена это вот она у вас здесь видно по замыканию видите видно по замыканию но вы с помощью замыканий получите все.

Эти ой там сада но вы не знаете на каком конкретно случилось событие то есть как в жизни вот вы получили весь зоопарк этих котов с помощью замыканий а как вы вычислите на каком произошло конкретном событии вот на это указывает только слова зис евгений спрашивать можно ли еще проще если честно нет потому что даже в библиотеке джейк вере если вы будете это.

Писать то у вас только вот этот цикл скроется в рамках этой библиотеки да вы на группу элементов сможете сразу подвесить события без цикла вот спрашивает если этом сатой значит ой там сада и не проходит потому что вот эта функция смотрите оно вызывается внимание вот про это говорили уже оно вызывается не здесь не сейчас оно вызывается вот если бы вы ее вызывание прям щас то.

Тогда переменной было бы равнодушному значению допустим но эта функция будет вызвана фиг знает когда да то есть она будет вызвана в тот момент когда весь цикл уже прокрутится и вот эта переменная она сейчас лежит не в правильном значении ее функция либо нет вообще либо это переменной у нас уже прошлась прошелся весь цикл и она больше чем лицо же.

Да она уже вылетела по условию поэтому только снова зыс здесь является тем что нас спасает можно ли for each применить конечно можно for each for им тут как бы или просто for разницы нет никакой ведь важно понимать что в массив можно хоть циклом файла пойти да ну просто как бы классика это циклов а вот мы и мы обошли ну что такой был пример если функция передать.

Параметр смотрите вот это такая хитрая тема значит в классике и винтовые модели java скрипта таким функциям мы параметр сами не передаем дело в том что все такие функции по умолчанию принимают параметр и ссылку на текущие события которая содержит различные полезные данные об этом события например содержат для события мыши допустим если и так ли кто.

Координаты клика если это событие клавиатуры the code нажатой клавише да то есть мы свои пара своих параметров такие функции не передаем сюда идет только классические объект события точно также как и в жизни в функцию обработчик он бог да мы коту никаких параметров сами передать не можем код получает информацию классическую важную для него это как бы браузера стандарт.

Установили какая информация важна вот этот вот event чё для кота важно если он увидел собаку ему важно видеть размер этой собаки и является это собака его знакомый собакой или нет да то есть увидел йоркширского терьера или мастиф это вещи разные для катать так полагаю вот поэтому как бы эта информация строго определено заранее дамы свое сюда как правило ничего.

Передать не может так на платных курсах таких же примера вопрос но да там по ней у по стилю таких же их там просто больше намного вот так получается через объект забыть его можем решить проблему сайта мтс на той но значит а какая проблема но вот никаких проблем не получаем если работаем со словом зыс если ссылаемся на.

Контекст вот семён пишет можно злоупотреблять параметрам вторым и более не получится потому что видимо функцию только присваиваю а вызывает eyebrows то есть браузер решает какой какие данные мы перед этим самому элементу непосредственно да ну что поехали дальше давайте плюса нить если здесь нормально так прояснилось концепция при этом сразу говорю от не важно как вы задаете то.

События ход хоть этот ивент listener хоть вы и эти события задает так как мы написали он крик как угодно на сто процентов куда вот концепция не меняется все равно слова зыс это слово зэк и от него никуда не денешься она везде хорошо отработать спрашивали будет либо это кол будут и честно говоря так посматриваю на время и чет уже не верю что я как обещал в 1:20 уложусь.

Да все таки очень много дополнительных вопросов и хочется все подробно объяснить ну ладно посмотрим и в это тоже объекта не события это объект который описывает события давайте окей я вам его покажу консоль вот я давайте посмотрим на этот объект локальную переменную назвал как хочу пожалуйста event клика также источник.

Где произошло клиент x координаты отступы по иксу от края экрана клиент y отступ от края экрана да тут какие-то слои еще чат эти много полезной информации как для кота вес собаки дистанция до собаки до порода собаки знакома собака или нет им может вместе выросли тогда бояться не надо вот вызывать я его не буду зачем не вызывать.

Объект вот сравнивать можно можно но это немного другое вас куда-то не туда несет я не знаю зачем вы хотите сравнивать я также слышал да просто одно равно в данном случае до обработчик же правильно сработать ну ладно давайте сейчас посмотрим еще одну прикольную штуку из контекста значит вот какой пример будет смотрите у нас есть эти ой там а и знаете чего хочу сделать вот у.

Меня есть много атомов и мы по клику очень успешно научились с ними работать правда ведь по клику сейчас совершенно спокойно на этом и присваиваю актив слушая знаете что хочу сделать я хочу сделать так чтобы у меня они по интервалу раскрашивались датой чтобы они рандомным образом раскрашивались допустим каждые 500 миллисекунд то есть каждые.

Полсекунды у меня эти дивы случайным образом мерцали я значит пишу сет интервал и пишу значит сет интервал хочу функцию артефактов вызывать каждые 500 миллисекунд кто что думает по этому поводу вот если я функцию где fighter буду вызывать каждые 500 миллисекунд как вы считаете насколько это удачное хорошее решение так контекст потухнет.

Создавал стандартная функция до сад интервал это стандартная функция которая говорит по что мой вот эту функцию от тифа это будем вызывать каждые 500 миллисекунд мол define 2 есть потери окружения да правильно будет потеря контекста потому что когда мы с вами будем вызывать вот этот интервал то что произойдет мы вызываемся от интервал передаем туда идти fight так вот он этот.

Актив этом не видит какому объекту мы применяют он этот актив ой там вызывает в рамках глобального контекста и опять таки вопрос смотрите опять спрашивает все по мерцают опять смотрите тот всему миру сказали мерцай да не будет ничего мерцать он опять таки скажет то же самое давайте посмотрим сейчас прямо генерация ошибок пойдет о клиенте.

Вот пожалуйста по нам горит зыс класс лист знал define алгоритмы чо пристал с этим словом здесь кому не задавать вот это слово завис он ссылается опять на window да и вот знаете новички очень часто спотыкаются в примерах слайдеров фотографии дайверов обратного отсчета я в это чуть позже покажу когда например они свой слайдер тестируют и видят то.

Что функция зыс next да как бы вызвать следующую картинку на экран работает хорошо и они такие радостные вешают ее нас интервал и нифига не работает не бьются головой об монитор не понимаю что происходит а вот видите да то есть как бы очень важен контекст вызова то что здесь у нас контекст при клике автомате автоматически правильный а.

Здесь у нас контекст глобальный и ничего не работает хорошо так ну что я так смотрю что мы не уложимся в 1:20 который я хотел не думаю что вы сильно расстроитесь да как бы на дом-2 никто не опоздает поэтому не переживайте пока плюсуйте если понятно вот эта проблема которую мы озвучили и я думаю сейчас сделаем перерыв минут на 5 на 7 кг традиционный вот и.

После этого продолжим и посетим еще минут сорок потому что минут 40 там еще надо да вот просто чтобы подробно объяснить все эти нюансы поэтому смотрите вы кидайте сейчас вопросы во вкладку вопросы если они у вас есть да и просто передохните 57 минут после этого продолжим а посидим где-то до без 2010 по москве вот такие дела и так перерыв продолжаем в 2102.

Где-то запись будет до запись будет на ютюбе вот полезные ссылки так я прокрасил случайно две ссылки дал на youtube ссылка нижняя верхнюю ссылку пока не надавал и так перерыв продолжаем через 6 минут так давайте попробуем продолжить пожалуйста плюсуйте если появился чуть задержались.

Технической причине вот но вижу что только 10 человек дом-2 убежали смотреть стали остались или не убежали и запускается так отлично да или же что в основном все сохранились вы накида не во вкладку вопросы кучу всего давайте это в конце вебинар их посмотрю вот а мы вернемся к нашему примеру да вернемся к нашему примеру который крайне важен и сейчас я вам покажу его с другого.

Ракурса так но я думаю за 10 минут перерыва не забыли про что мы говорили да то есть не забыли то что вот мы говорили про внезапную смену контекста прибыль зависят интервал то что вроде артефактом работает хорошо поставили все punto рвал все фигня плохо паника мы знаете задачка специфичная да и на практике сложно себе представить что человек так.

Ошибиться ведь здесь подсказка подсказка для него является смотреть что является подсказки для этого человека то что фифой там когда-то так вызываешь ты вообще не говори к какому элементу мы обращаемся неродном элемент вообще никакой элемент получает этот вызов и я вам сейчас покажу более реалистичный пример заодно те из вас кто в джесси гивер ни.

Разу не видела по его сейчас увидит посмотрите пожалуйста на вот строчки кода с 9 по 19 скажите кто здесь что видит гляньте на так вот такой страшный набор строчек как 99 19 и скажите что же вы здесь видите так давайте жду ваших ответов так часы объект кто-то видит нет это не объект это класс да это класс java скрипте классов нет на но есть функция.

Внутри которой есть свойства зыс так вот сейчас вы видите создание собственного объекта на java скрипте в рамки нашего текущего вебинар эта тема не поместится на нее нужен отдельный целый урок полноценный чтобы разобрать но мы с вами можем понять хотя бы общую концепцию вот посмотрите есть некая функция и в ней есть много зыс на выходе когда эта функция отработает будет.

Создан объект вот такого видов когда мы вызовем эту функцию с помощью слова new создадим новый экземпляр этого класса будет сделан объект вот такого вида у которого по полю то им будет лежать переданное значение 60 у которого по полю элем будет лежать соответственно переданный вот этот вот элемент какой-то да то есть будет лежать.

Переданный вот этот вот объекта по сути вот так вот будет лежать до но я сюда напишу просто например вот эту переменную div и у которого по полю тег будет лежать вот это вот функция то есть мы когда с вами создадим экземпляр этого класса мы по сути сгенерируем объект вот такого вот вида наш собственный объект нестандартные.

Java script ого именно наш настоящий собственный объект и смотрите в чем смысл этого объекта у этого объекта есть полетаем по которому хранится оставшееся время есть элемент в которой это время надо распечатывать есть функция тег которая вычитает единичку из текущего времени и записывает текущее время в поле элем enrage темы то есть получается что вы правильно.

Определили это таймер обратного отсчета который должен бегать и человеку постепенно на экране уменьшать количество оставшихся секунд sanity кто это понял по виду данной функции что как бы ну и кто понял общий смысл не вникая даже в особенности лпр java-script потому что еще раз повторюсь опер java script это целое полноценное занятие нужно чтоб разобрать а мы с вами сделаем.

Вот что вот я вам просто хочу показать что реально новичкам выносит мозг ведь такая тема вебинара знаете новичок пишет вот этот класс таймера у него все надо тестировать и он берет и тестирует он вызывает функцию таймер тег и смотрит а к слушай у меня был 60 передо надо было перед на 60 секунд его элемент div должно сейчас напечататься той минус минус то есть 59.

Давайте посмотрим прав новичок или не прав в такой ситуации так тик тик отношу самописная функция видите тег присвоить function- это имя метода и вот и пишу таймер тег давайте смотрим 59 круто новичок такой обрадовался думать слушайте меня все работает дай-ка еще раз три раза тип ну так идите и получаем три раза тег то есть 60 минус 3 57 все новичок видит то что все работает.

Таймер тикает и какой его следующий шаг когда он обрадованно это сделал он дальше ставит сет интервал пишет сотру порвал таймер тег да и говорит пища миллисекунд есть каждую секунду этот таймер должен тикать кто по предыдущему примеру уже понимает что сейчас произойдет когда я все тут рвал помещу таймер тик-так да он из обращения window.

Error да вы абсолютно правы где скобки сергей спрашивать сергей опять внимание смотрите то же самое что из кликов скобки здесь уже не нужны потому что эту функцию теперь будет вызывать браузер мы просто даем ссылку с интервалу на эту функцию до таймер тег вот на эту функцию дали ссылку а браузер будет его уже вызывать если я здесь напишу таймер те кто на будет вызвана прямо сейчас ровно.

Один раз и вы совершенно правильно все пишите что действительно произойдет опять потеря контекста вот смотрите что произойдет за и солим is not define потому что опять идет вызов от этого таймер тика в рамках глобального контекста опять-таки сайт интервал вызывает эту функцию в рамках объекта window и браузер как дураку виндовый считаем у.

Винду ищет элем enrage темы да функция опять вызывается без контекста и вот это очень популярная ошибка которую на курсах доводилось мне видите бесчисленное количество раз когда люди писания таймер или слайдер и например в слайдере тестировали функции при бы next пока с предыдущей следующей картинке у них все работало они-то вешали на таймер.

И их вырубал а просто вот напрочь вот плюсуйте кто понимает вот глубинный смысл это ошибки что вот она важнейшая ситуация потеря контекста да то есть вот контекст рушится здесь так дай вот как исправить исправить неожиданно можно очень просто вот такое хитрое исправление в данном примере она тоже чуть посложнее но вот такой прикол даже не проходя сложных.

Функций колы play и прочего давайте подумаем дети прибудет какой контекст это конечно пример уже посложнее идет вот смотрите есть анонимная функция записанная в сет на провал у неё она будет именно вот эта функция вот в этих фигурных скобках вызываться каждые каждую секунду и в ней контекстом будет как раз таки объект window а вот теперь к вам вопрос скажите с.

Какой стати эта функция видит переменную тайна вот с какой стати вот эта функция видят переменную timer какое слово мы прошли с вами недавно замыкание да это правильный ответ вот это анонимная функция видит таймер с помощью замыкания и когда мы пишем таймер точки тебя круглые скобки видите мы производим точно такое же действие как в да как бы как и внизу когда.

Тестировали и вот получается прикол работы с контекстом то что вот это вот функции у нас разрабатывают в контексте виду с помощью замыканий видит переменную timer и тип мы вызываем в нужном контексте и вот смотрите что после этого происходит для но каким то чудесным образом работает сразу вас предупреждаю то что если кто именно этот пример не понял но понял предыдущие все.

Нормально этот пример он сильно сложнее да потому что здесь как бы контекст уже по-взрослому работ но этот пример гораздо больше приближена к реальной практике вот почему сад интервалы и видит потому что смотрите вот эта функция со строчек 6 7 8 до объявлена внутри вот эти функции со строчек 113 и поэтому переменные div и таймер внутри анонимной функцией вот.

Этой вот видны совершенно спокойно вот такой прикол с контекстом ну чё как ощущение java скрипта уже начали бояться и нормально еще так этот работать на пятой версии на 6 тоже отработать то есть творить и вот вот так вот работает везде просто в 6 там можно написать стрелочные функцию там свои приколы но там контекст нормально передастся так.

Потрогать самим так так страшнее интересней могут потрогать так это она сама себя называет но смотрите вот эта функция не сама себя вызывает ее вызывает browse да ёб баузером браузер вызывает именно умеет тикать понимаете вы на java script делу давайте по-честному вы на java скрипте не можете каждую секунду вызывать сами функция у вас нету.

Часов в их виндоусе не сотрете часы сопрет только браузер именно он может каждую секунду теперь поэтому вы ему просто прописывать инструкцию да как бы чё делать каждую секунду и вот прописываете дачу ему именно делать давайте вернёмся к нашему более простому примеру и попробуем в этом примере где мы хотите сделать рандомную раскраску понять как же нам.

Сделать правильный контекст и сейчас готовьтесь к очень жестокого элементу но тем не менее он я думаю многие понимания в джейси служит для вас или покажет что еще надо много учить всего интересного а итак мы с вами видели что если писать и секте файта контекст по-любому будет кривой да значит по логике вещей по сравнению с предыдущим примерам если проводить параллели достаются предыдущим.

Примерам то мы здесь пишем функцию анонимно а вот тут уже будем пытаться как-то вызвать наш актив alt но смотрите нам с вами надо получается да сначала определить какому элементу мы хотим актив этом вызвать да то есть мы должны найти рандомный элемент что нам нужно сделать чтобы найти роддом на элемент в первую очередь от так как считает что общий изначально надо сделать чтобы.

Получить какой-либо рандомный элемент так вопрос на понимание вообще программирование самого mt ранд масс рэндом да нам нужна какая-нибудь левая функция ин-т ран от мин-макс так значит сразу по поводу этой функция что я вам хочу сказать те кто не был на марафоне январского по java скриптов вы сейчас даже не пытаетесь понять как эта функция работает там мы на разборе dc.

Минут 20 это обсуждали вот и это очень такая жестокая фишка ну вот вы как бы просто пойти она будет выкидывать нормально нам числа до вы не переживает тут все все будет у нее хорошо если а только скобку правильно поставила в этом не уверен ну ладно надо надо проверить вот как в печке такой функции нет мы должны вручную написать и вот мы с вами просто напросто будем.

Получать минимальное число от 0 до какого вот от 0 до какого нам нужно получить случайное число так надо единица нет неправда на 9 почему до девяти до длины это уже правильно но внимание до длины -1 почему -1 вот анатольевич от правильно написал так до счет с нуля присмотрите рандомное число мы хотим взять рандомный элемент и мы поэтому должны получить столько же.

Часть а сколько количество элементов в массиве в массиве нумерации идет с нуля идет баланс -1 поэтому мы делаем mt ранд от нуля до минус 1 то есть до 7 давайте протестируем работу нашего ранда так в слове lancia сегодня почему-то постоянно переставляю местами буквы м и g вот ну давайте смотреть пока наша функция нас ещё ни разу не подвела вот числа бегут по.

Линейке видите интернет я на инстинктах написал правильно судя по всему на то есть ни разу еще ошибочного числа мы не получили выходящего за диапазон от 0 до семёрки так как я теперь получаю текущий элемент не мигать то это погодите мигать еще надо чтоб они смогли как мне получить текущий элемент так сейчас небольшой.

Задержкой поэтому ждем так а этом сад ран да видите по замыканию мы видим altus от ран это один из наших рандомных элементов и теперь внимание величайший прикол java скриптов супер инструмент о котором ещё ни разу не говорил даже на платных курсах как ни странно все это дело как-то мимо проходила вот смотрите есть сайтом стран это наш случайный элемент.

Но у нас есть функция которая не умеет принимать элемент в качестве параметра она работает со словом зыс и как нам вот это вот этом затрат засунуть в слово зис вот загадка века и выясняется то что в java скрипте помимо стандартного вызова функция актив ой там вот таким образом есть еще очень до забавная надпись когда мы пишем optifine кол и смысл следующий когда мы.

Пишем артефактом . кол любую функцию мы можем написать и написать . кол или . и play мы первым параметром в кол ну-ка вообще как вы с английского переведете так и видите calls английского вызов а мы говорим идти fight ему вызвать и смотрите первым параметром мы туда передаем контекст передаем контексте которым эту функцию надо вызвать вот так.

Дальше в методе колы и play можно передавать параметров не этот кал через запятую в это теплое массива вот но нас это не интересует это чуть глубже информация сильно глубже а вот мы говорим служб позови нам функция артефактом но в контексте python front то есть это знаете как это можно с точки зрения жизни воспринять вот есть штат работников.

Так и считать не хотят работники рисоваться на работники вот люди люди люди люди всюду люди так вот есть какой-нибудь метод называется дежурить до вот и вы смотрите вот этот вот метод дежурить да и вы говорите метод дежурить мы вызываем в контексте какого-либо конкретного объекта то есть если вы просто вызовите этот мир без контекста.

Не понятно да к чему он применен а тут вы говорить то что мы его вызываем и этому методу как бы насильно подсовываем вот этот контекст ой там сад ран то есть а этом сад ранд как раз такие слова зыс будет равно ему да вот этому значению которое мы передали в качестве первого параметра смотрите какая пляска начинается вот пожалуйста рандомно и мерцание элементов да вот что-то 2 3 4.

Все стороной обходила только сейчас начала все нормально работать вот такой вот прикол забавная система вот этот самая такая вещь конечно подмена контекста java скрипте из которой растут ноги потом и you call back off и вы прочего ну плюсуйте кто вдруг понял кол я не знаю что сейчас многие плюсану потому что вот здесь конечно только те кто.

Поопытнее по уже такие вот кто java script с этим сталкивался до скорее поняли те кто больше новички вот конечно да чуть дольше изучать да там это нужно несколько уроков на такое дело было ну вот ни один урок но тем не менее вот какая да вот какая забава то что неожиданно у разных функций до одно и то же функции это слово здесь вообще может.

Меняться как угодно то есть ладно мы раньше могли либо на события повесить функцию тогда контекст браузер ставил либо могли вызвать глобальный был бы window оказывается мы любой контекст можем прислать но тогда этот пишет нифига не понял но я вот не знаю если это никто знакомую нас и door честно курс hdmi или ходит какой-то вот точно также по-латински пишет вот если это тот.

Же самый дух то если только начали html изучать какаешь на этот вебинар как бонд еще равна ватт вот но если такой тот же самый город так да тот же самый подтверждает понятно вот это все приколы с контекстом а теперь давайте посмотрим на контекст и кубики вот сейчас будет наверное самая большая жесть постепенно вот но но вы погодите вот пишет тоже.

Понял только половину вот смотрите вам не случайно дал эти ссылки подчинения то дал случайно вот эту ссылку но тем не менее она существует сегодня вебинар именно такое чтобы показать вам какие моменты вам надо учить да то есть какие моменты новичка мозг выносит и вы пересмотрев этот вебинар два-три раза их поймете но по хорошему реально что под понять нормально опыт с этим изыскал и.

Прочими этот реально нужно целый урок а чтобы жить в риверс тачку нормально работать нужно пародию на джиг вере написать самому но вот и только тогда java скрипт будет легко и интуитивно чувствоваться и джек вере будет тоже легко работать так никита же записал никита тогда не переживайте что они поняли или поняли половину да то все будет нормально так значит давайте могут.

Какой пример посмотрим мы сейчас перекинемся на такую вещь которая называется call back так некит пишите любые с не пойму не не переживать там подробно это все будет за это здесь у нас полтора часа времени а там будет шесть уроков там все будет легко в этом плане в плане но не то что легко но поподробнее спокойнее а так вот смотрите переключаемся.

Немножко на другое callback как переведете с английского call back вы слова как хорошо перевели интересно какой callback переведет так слова уже пишет какие-то ха ха ха так позвонит спине обратный вызов ну ладно хорошо что что так написали да но обратный вызов это конечно правильный перевод ну вот хотя до многие перевели звонить назад кто-то написал вызвать вызвать спину да.

Ладно это еще нормально not call back такая интересная вещь знаете вот по жизни callback это некое задание вот просто почему я про клубники на этом вебинаре решил сразу сказать ну что мне точно так же недавно на почту написали и зададим вопрос и поэтому пойму ли после полного курса калмыкии ответил как поймете но решил сразу даже на сегодняшнем вебинаре показать откуда.

Все это растет когда вы видите стандартной библиотеки bootstrap джек верею ой java скрипта в обычную джек вере там есть куча call back off и более того есть куча каких-то непонятных функций которые мы задаем эти функции понимают какие-то совершенно левый параметры и мы с вами должны вдруг понимать как их писать вот давайте на примере джейк вере.

Гайд документации java кое-что попробую показать допустим открываем интер actions трек было дропа был виджет вот смотрите здесь здесь вот в примерах ухода класса до фигня давайте попробуем открыть что-нибудь типа дров видите как они предлагают писать чёто получение и поставили дроп фанкшн и мы с вами вообще не понимаю что здесь происходит с точки.

Зрения работы коды изнутри должны сообразить как написать вот эта функция они просто в документации пишут инициализируются когда произошел у киры короче колдакт на дроп вот да и попробуй это пойми по документации если не знаешь что такое л.б. так поэтому будешь думать что они я в.

Спину вызывают да как бы в этой документация так вот что есть call back давайте попробуем понять вот не думаю что сейчас кого-то смутит пример стандартной функции которая ходит в магазин за продуктами то есть такой работник бродящие по магазинам в качество параметра он традиционно что принимать вот вы отправляете работника в магазин чего он.

Обычно даете в качестве параметра так до шок волкер к вы ему даете когда круглые скобки пишите вот и вы ему даете мания и лист да вы абсолютно правы многие думают пример знают курсов по печке или с марафона по java скриптов вот и такой работник он всегда очень простой его когда отправить в магазин вы получаете просто-напросто в конце ритуал продукте.

То есть это работник такой который вернул вам продукты и и сейчас что есть call back смотрите call back это инструкция которую данный работник выполнит в какой-либо момент времени в частности вот что может быть call back on the shoulder для ш фолкер a call back а может быть то что он сделает с продуктами то есть вы.

Ему передаете некоторую инструкцию и вы ему передаете эту инструкцию а потом ее принимает к тем продуктам которые купил или к чему угодно как это выглядит на практике вот давайте подумаем как теперь выглядит вызов этих чтоб волтера вот мы вызываем shop волкера до дали ему 500 рублей сказали купе и ну там какие-нибудь про не знаю там лук сметану томатную пасту и.

Потом вы ему передаете колбы да вот так передаете callback и говорить его в колбе get там из продуктов вари борщ видите инструкция для этого правильно в магазин и вот-вот callback пожалуйста то есть эта функция обратного вызова функция которую вызываете не вы потому что почему вы не можете вызвать вот эту функцию вы не знаете когда ее вызывать.

Вы не знаете когда этот товарищ вернется из магазина до вы может быть там полчаса пробудет может быть день вот самое главное что он когда-либо оттуда вернется и будет готов выполнить вот эту вот функцию вашу инструкцию новую и именно только он знает когда эту инструкцию нас может начать выполнять поэтому вот мы передаем не кикал баки при следующем вызове передадим его то.

Тысячи рублей скажем притащи нам ящик газировки и call back a будет поставьте ее в холодильник до это предписание для следующих действий то есть смотрите когда в java скрипте возникает callback есть командир ведь вот есть командир есть подчинённый командир вызывает подчиненного и он знает то что подчиненный потом по результатам своей.

Работы должен сделать что то еще но например в жизни командир подчиненного вызвал сказал копает траншею а после того как траншею в кпз иди в магазин за минералкой вот иди в магазин за минералки после выкопанных траншей и то есть callback потому что командир не может сейчас сразу дать две команды если он ему прямо сейчас скажет копает траншею иди в.

Магазин то работник выкипает одну лопату пойдет в магазин получается команду иди в магазин он ему должен дать после того как тот выпало выкопать траншею но смотрите начальник он знает чего должен сделать работник но он не знает когда он готов приступить к этой работе да то есть когда закончится копка траншеи знает только.

Будник вот и поэтому мы работнику в рамках команды копает траншею сразу передаем скажем так и листок с дополнительной инструкций и этот листок он откроет только после того как траншею выкопать и на листе вполне может быть написано теперь закапывай вот это также как java script а если нужно что полимент сначала потерял прозрачность а потом снова зажегся да то есть такой.

Мигающий элемент сначала по сетевой потала почти в единицу вот аналог жизни работник получил прямую команду иди выкопать траншею и такое письмо в кармане у него лежит как надо копаешь прочти письмом письмо открывает и там написано тепреь закопал вот классический пример callback плюсуйте если понятен вот как бы общий смысл callback а сейчас покажу java скрипте где это может быть.

Нужно java скрипте эту нужно просто повсюду так вот пишут в php также в php просто год не асинхронный java скрипте синхронность некая есть вот смотрите такой пример сейчас я его кратенько покажу вот есть какая-то стандартная функция анимация на вообще пофигу как она работает вот кому интересно как эта функция написано по читайте в блоге у меня в блоге и то есть.

Вот вопрос по поводу стрелочной функции да это тоже самое только там контекст по другому передается так и лекси спрашивает то голода call back алексей вы правильно ответили в скобочках на свой вопрос вот сейчас вы видите что такое call back так вот смотрите те из вас кто интересуется как же работает эта функция faith можете у меня в блоге а щас дам.

Вам ссылку отдела прочитать давайте сразу на бету дам ссылку так одну секунду я сейчас найду так java-script простая анимация так вот держите ссылку на эту бету просьба не ломать так она еще со скрипом работает пока что там как раз исходники всех вебинаров все вебинары вообще которые проводились вот а потом портале.

Чекам станет значит вот можете почитать про эту функцию до подробно как бы как она создавалась для нас это просто тупо рабочий инструмент мы передаем элемент который надо скрыть и передаем значит время за которое это надо сделать так ссылка не работает все сейчас мы сейчас секунду я сейчас секунду я сокращенную ссылку сделаю так сократить пировать это просто сервис трансляции подрезает суку.

Каким-то образом вот поэтому она портится так вот значит смотрите функции анимации нас как таковая не интересует на этом уроке эта функция просто напросто принимает ссылку на элемент да вот сюда ссылка на дом элемент и принимает время за которое этот элемент нужно скрыть и вот обратите внимание стандартное событие а этом sol клик фанкшн faith.

Передаем зыс в этот файт и за одну секунду надо скрыть значит этот элемент вот смотрите как это будет происходить нажимаю на элемент к нему применяется функция fight эти эта функция самописная которая просто напросто скрывает этот элемент за указанное время кто работал шейкере там такие функции стандартные тоже есть это просто сам описано на чистом java.

Скрипте так плюсуйте кто понимает что это просто тупо рабочий инструмент до который нас не интересуют изнутри который вот работает и кто понял каким образом работает да то что есть ссылка на дом элемент есть время и он opacity плавную сайт за передано и время но это универсальная функция по уменьшению opacity и мы вот значит с вами опасть и.

Уменьшаем а в документе почему-то остается дырками почему в документе осталась дырка кто как считает так потому что возврат будет див остался жив остался до у него opacity 0 сам элемент осталось видите наша стандартная функция по уменьшению прозрачности по анимации она на самом деле не такая классная нам с этим элементом теперь надо что то сделать и.

Вот тоже момент который бывает выносит мозг новичкам особенно тем кто пришел из печки а не знаете что делают потом они пишут вот так сразу говорю почему я ссылаюсь на новичков и спичка может они привыкли что пока вот эта строчка кода не выполнится до до этой строчки кода мы с вами даже не дойдем они такие думают слушай ночью дайте а тут запущу анимашку на одну.

Секунду с помощью функции faith а дальше ставил дисплей над поставлю как это анимашка выполнится а вот те кто знают java script скажите что будет происходить если мы так напишем так сад интервал сразу пропадет да как работает java-script он вызывает функцию faith выполняет ее все ставится этот интервал этот сад интервал работает теперь и.

Синхронно он будет вызываться каждую ну каждый кадр у нас 50 fps то есть каждые 20 миллисекунд будет вызываться сад интервал и значит через 20 миллисекунд уже отработать ставил дисплей на на или строчке мы не застряли в отличие от печь pr в отличие от других языков программирования мы просто в асинхронном режиме запустили с и тантра вала и попали на строчку номер 8 и все кривые.

Печаль опа и вот она соль для чего нам нужны кубики потому что смотрите вот эту функцию мы вызвали мы сказали браузеру начни товарищ анимацию по уменьшению opacity но мы не знаем когда это анимация закон учиться а знает эту только вот этот работник faith присмотритесь к функции скажите на какой стракер он это знает то что у нас с вами закончится анимация.

Просто интуитивного просмотрите этот код быстренько по диагонали такси 26 до 26 правильно 26 27 вот вот вот кусочек да то есть ли интервал как еще анимацию можно закончить кроме как клей интервал ну как бы все что в 26 до 28 это правильный ответ а ну вот как как годного где написать но опять-таки мы не изучаем этот инструмент изнутри просто смотрите.

Важно понимать что что откуда растут ноги call back off мы в рамках вот этой строки знаем чем мы хотим сделать после завершения анимации но вот досада на восьмой строке мы не знаем когда анимация закончится об этом знает только строка 27 и получается мы как бы должны делегировать вот эту команду и вызвать ее вот здесь именно это и есть call back выглядит это.

Следующим образом функция faith помимо элементы времени еще принимает какой-нибудь параметр f и прописывает следующее мы в переменную камбэк положим либо f либо пустую функцию то есть смотрите если у нас переменная f не будет передана то в переменный callback будет лежать вот такая простая функция не интересно а если мы их call back.

Передадим то в кабаки будет лежать имена и что эта штука делает она берет и callback вызывает после клей интервал вот сейчас я передам этим параметрам вот сюда вот функцию сейчас не пугайтесь кто не понял мы аккуратненько отследим путь мы сейчас аккуратненько отследим путь как это происходит так вот смотрите faith это наш.

Руководитель до точнее нет руководитель от основной код вот основной год вызывает функцию faith как шов волкера и говорит вот и деньги вот тебе список то есть вот элемент вот тебе время а вот тебе инструкция товарищ что ты должен сделать когда анимашку завершишь в итоге смотрите эта функция попадает в переменную эф да вот пошла в переменную переменная.

Пристроилась в call back и вот пожалуйста мы ее вызвали то есть вот какой прикол гляньте функция которая была объявлена на строке 7 8 в реальности вызывается на строке 31 на самом деле это ровно та же самая функция которая была описана здесь ровно вот оно вызывается вот так и смотрите что будет получаться так что то нет а где наш пример видите.

Элементы сейчас теперь они арт один элемент а сейчас они от 1 после завершения анимация да только после завершения анимации выходит а тут alert как инструкция да вот как инструкция давайте еще раз дело стручок волкер был видите как инструкция рой траншею аккуратно потихоньку вот как выкопаешь доставайте письмо и соответственно его выполнение вот как то так так ну плюс.

Они что ли если поняли такой прием так же интересно кто то пишет крутя столе думаю так притихли в ужасе виде это вот смотрите кто испугался да вот вы сейчас видите наверное самое сложное для понимания что общее java скрипте вот реально вот это надо изучать не один вечер да не один вечер это гарантированно но это самая сложная что-то поесть вот реально если вы это.

Поймёте по потом джаван и джек вере будете открывать и читать его как книгу просто но это еще было не самая весёлая почему call back со скобками что мы его вызвали а вот теперь внимание кто программировал на джиг вере наверняка видел что в колбе как бывает используется слово зыс и вот снова вопрос о контексте смотрите мы хотим здесь написать строчку которая у нас.

Была this style дисплей но у меня к вам вопрос скажите а из лишь я вызвал call back так какой же у меня контексту это вокал beck а у call back a вызванного на строчки 31 что за контексту этого callback так ждем ответа windows просто винда faith контекст fighter кто же вам сказал что у нее контекст faith вот давайте так всегда когда вы функцию.

Вызываете с круглыми скобками на хвосте это всегда какой контекст гарантированно просто если вы просто напросто вызвали call back вот так так давайте мэтт проверь войлок и смотрим где тут наш консоль лог оба смотрите всегда абсолютно всегда когда вы вызываете функцию с круглыми скобками на хвосте в ее вызывает в контексте объекта window.

Да и получается то что такой был бекон бессмысленно ночи в таком калмыки сделать он применяется ко всему миру и вот вопрос на понимание кто у него правильно ответит вы уже поняли вообще всю суть джесса как должен вызываться здесь call back в этом примере так ну давайте высоко взыскал big я мама так он не вызовется так call back all все молодцы.

Сообразили хелбиг кол или вот что получается функция фейт работает над элементом видите ей передали слова зыс и она call back вызывает опять-таки в контексте от этого слова за все я думаю на этом можно до прекращать изучать java script и переставать его изучать вообще до представим как вот этого видели учтите вам такое в жизни не надо будет самим.

Писать практически никогда в это должны просто один раз понять где то на интуитивном уровне потому что все библиотеки это используют во всех библиотеках есть кубики и видите да видите что получается то что надо понимать как они работают но необязательно иметь так писать самому сейчас я эту про градуирую еще потом не переживать вот я сейчас могу совершенно.

Спокойно сделать заставил дисплей на а вот смотрите какое чудо вот он самый настоящий call back я даже не буду пытаться спрашивать плюсики я вам просто хочу сказать вот что смотрите вот это java script который вы сейчас видите это тот же вас crypt который верста чеку не нужен это java script нужен настоящему фронтенд разработчика.

Суровому бородатому который когда-либо захочет написать свою джек вере или плагин для него конь когда вы играете вам надо просто напросто понимать контекст слова зыс и как бы да и и соображать откуда ноги растут у этого всего есть вам никогда не надо уметь писать вот это вот этот для суровых фронт-энд разработчиков до которые java script изучают не один.

Вечер не а борода не обязательно борода нужно так чтоб евровидение выиграть в остальном борода не нужно вот значит получается смотрите да вот этот за вас пишут крутые ребята которые java script знают очень хорошо вот подойдет sygic вере кто пишет другие библиотеки где постоянные callback и все прочее прочее мы должны просто понимать откуда у call back a растут ноги контекста да то что.

Java скрипте есть вот такой вызов функций когда мы подставляем произвольный контекст до в любую функцию и все вот это то что нужно верстальщик так и на каких курсах именно так писать будем но смотрите вот какие есть курсы по джессу есть в школе курсы java скрипте верстальщик может кто видел там курс попроще он стартует в апреле.

Там для тех кто сосновыми еще немного тупит вот есть такой курс там значит сначала вообще основы потом получается джейк вере в простом виде java script в простом виде ну и библиотеки то есть то что до верстальщика нужно вот то что я сейчас делаю это конечно вещичка чуть посерьезнее но но давайте я поясню что не будет вот я видел те из тех кто в чате записался теперь боится.

На курс идти после увиденного сегодня я вам сразу скажу такой жизни как сегодня там не будет вот смотрите первый урок это как бы примерно то же самое что сегодня но гораздо подробнее и и значит с другими примерами с большим количеством примеров еще плюс зоны видимости синтаксис языка массива объект и прочее прочее прочее единственная реальная жесть это урок.

Номер два потому что там будет следующая там на основе сегодняшнего вебинара и первого урока мы пройдем а.п. и напишем пародию на джиг вере свою потому что самый лучший способ понять библиотеку джек верь это реально написать на нее небольшую пародию из нескольких функций которая просто за счет этих call back off все опишет так что вы куда идет вот этой тот.

Единственный урок где мы будем программировать так же как сегодня жесток вот единственный урок а дальше все что нужно верстальщик то есть дальше когда вы уже поняли джейк вере просто-напросто изучаем эту библиотеку и кайфуем то есть вот на этом курсе такая логика сначала жесть идет чтобы вы поняли основы и откуда вообще берутся.

Все процессы в библиотеке джек вере а потом соответственно уже сама библиотека кайф кайфуем подключаем волкова сельских другие всякие приколы и и так далее вот так что не переживайте так на сегодня бутеры все ну да да я щас буду на вопросы отвечать записи там будут конечно не вопрос записи там всегда есть так документ от window очень.

Тонко и отличие тут готового ответа даже нет в вино то просто обертка на документ как бы под окнами есть уже конкретные свойства и тайтл и все прочие там так основы программирования достаточно да смотрите вот по поводу этого мусор давайте ещё кое-что покажу если кто сейчас думает идти есть тут прямо пункт на этом лендинги вот ссылочка на youtube овский вебинар.

На предыдущий называется он понимание java-script прямо на лэндинги можете его открыть и посмотреть и это очень четкий такой и как бы критерий если вы хотя половину поймете из этого вебинара который вот здесь расположен значит вам в курсе участвовать можно если не понимаете половины значит явно чего-то не хватает до явно не хватает каких-то доб начальных.

Доб знаний так что еще было вопрос как глобальный контекст от локального нового консоль ног сделать вот глобальный контекст когда круглыми скобочками вызвали функцию без всего локальный контекст во всех остальных случаях которые мы указали так давайте дальше смотреть что у нас еще есть хорошего по вопросам так так это было обсуждение обсуждение что еще из вопросов я сейчас.

Пытаюсь найти так тут значит смотрите вот хороший вопрос от ивана я сейчас его в чат продублирую значит если мы ставим это винт listener или он клик разница в контексте нет никакого то есть неважно как мы подвесили события контекст все равно будет слово зыс для события всегда контекст слова завис то есть тот элемент на котором события применилась так ой нету pro c какой-то не правильный путь.

Это понятный вопрос применять ли подобного содержания функции лим и чего там дальше погнали не какая-то странная функция точно про что такое контекст объясняли в начале вебинара смотрите контекста этот объект которому применена функция да то есть есть некая инструкция сейчас еще какой быстренько пример попробую придумать несет с бегом народ.

Самый лучший пример да то есть вот видите есть некая инструкция по которой что-то работает и вот бег-это что такое перемещение ног переставления раз два раз два раз два вот какому объекту эту функцию вызвали про в рамках какого контекста вызвали тот с помощью слова здесь на нужной ноги и сошлется да и он их будет переставлять вот эту есть контекст высота скрытое свойства функций.

Если рассматривать функцию как объект да здесь это то слово которое функция всегда есть и ссылается на что-то да то есть вот то именно на тот объект понимаете la java ски чем он интересен вы в нем программировать и процедурно как ни странно но по факту все функции выполняются в рамках контекста какого-то объекта неожиданно потому что на самом деле java скрипте все объекты вот и и.

Вот за этим такой вопрос давайте философский последний вопрос вот если эти во сне кто использует java script верстки плюс они если такие уже есть хотя бы по чуть-чуть так я пока тут кое-что найду да есть а вот скажите бывало ли такое что вы открываете библиотеку и и документацию нифига не понимаете passing часов чё там происходит вот откуда берутся зыс и.

Откуда берутся какие-то вызовы там еще что то да вот тут плюсы вижу тоже есть вот кто пишет минус таком случае этого молодца это значит у вас все хорошо но то многие пишут что постоянно такого значит каков вообще java script by верстальщик есть путь когда верстальщик не напрягается когда он просто берет и youtube окапи постит коды строчки кода из библиотек и все ему не надо вникать в.

Эти сложные вещи которые мы сегодня проходили которые на курсе лук чуть более сложный да там урок номер два но он copy-paste святые мощи все хорошо до тех пор пока не надо библиотеки что-то поправить или до тех пор пока не надо решить задачку для которой нет прямого решения в документации вот когда он на такое нарывается все сломался товарищ лота.

Чтобы такого не было и чтобы документация читалась легко нужно как раз таки понимать примерно в том ракурсе в котором сегодня показывал или в том ракурсе который будет на курсе вот еще смотрите к вам такая просьба кому вебинар понравился да это вообще кто хочет за поставить вот ссылочка по которым может по которой отзыв можете стать вот по поводу с 6 по.

Поводу я 6 будет на курсе да там я покажу основы которые в нем появились но учтите с 6 от хорошо поддержку у него всего 70 процентов если вы пишете на ис-6 его надо конвертировать в с-5а все библиотеки стандартных час пока что не из 5 в большинстве своем про но джесс речи не идет мы говорим про клиентский java-script да и поэтому пока что вам и из 5 понимать надо очень.

Сильно и очень хорошо да потом как бы постепенно на ис-6 все перейдете там не так уж много изменений как вы думаете ну вот как и как это рекламирует в сети вот честно все все те щас орудия 6 из 6 видишь 6 он конечно хороший но без без понимания из 5 если вы в 6 приходите ничего хорошего вас там не ждет это гарантирован вот такие вот дела ну что ж на сегодня.

Пожалуй все засиделись мы дольше чем планирование но вроде зато хорошо рассмотрели много разных тем поэтому кто хочет жду на курсе вот кто хочет же с освоить так поглубже понадежнее вот всем остальным удачного изучение и скажу так если вы сегодня поняли хотя бы 50 процентов значит у вас все хорошо значит вы java script рано или поздно освоить вот после перерыва была жесть поэтому.

Как бы те кто не до конца эту жесть понял вы не переживайте ну что ж на этом на сегодня все всем спасибо за внимание отличного настроения she пятница и кто придет до встречи в среду на курсе все всем пока успех

Комментарии

Eu koc • 2 дня назад
ну сомнительно порой.
Замыкание (англ. closure) в программировании — функция первого класса, в теле которой присутствуют ссылки на переменные, объявленные вне тела этой функции в окружающем коде и не являющиеся её параметрами. Говоря другим языком, замыкание — функция, которая ссылается на свободные переменные в своей области видимости.
А не то, что он нагородил =) Вроде и не обманул, но запутал знатно.
👍 0
Devid Makkoi • 7 дней назад
Как же вы меня запутали с рандомом из доступных элементов 1:06 ...
Никак не мог понять, зачем вы 0 отправляете, если randon всё равно принимает значение нуля. Зачем из length вычитать единицу, а потом в math эту же единицу прибавлять к length.
Как же я тупил. Искал сокральный смысл. Над this так не тупил, над call ещё меньше думал. А тут весь день ходил и думал - "почему, зачем?" . А потом понял, что все мы люди... )
В общем доверяй, но проверяй.
А формула там такая: Math.random() * (max - min) + min;
Не включительно max.
👍 0
Devid Makkoi • 4 дня назад
+Владислав Андреев
Не понял.
Сначала считаем то, что в скобке. В скобках получаем float от Math.random, умножаем на lengh - 0 +1 (в инструкции выше вычитали эту же единицу), а только после этого применяем floor. Floor применяется для того, что бы на выходе получать целые числа, ну и 0 будет чаще выпадать.
Но в любом случае, код не корректный, хоть и работает. С тем же успехом, можно было из length не вычитать ничего и не отправлять 0 в min. Min тогда вообще не нужен был.
👍 0
Владислав Андреев • 5 дней назад
Неправильно, потому что получится Float число, Дмитрий использовал floor(), чтобы округлить вниз, а после добавил 1.
И получается, что все значения рандома от 0 до 1 будут 1
👍 0
Александр Сагалович • 11 дней назад
рекомендовали это видео, чтобы разобраться в данной теме... Все хорошо, все понятно... Но без анонимной функции теряется контекст Дмитрий даже не пытался объяснить.. И так же происходит в куче других видео, книг и статей...А именно это я хотел выкурить.. Это какая загадочная вещь :)
👍 0
Сергей Наянзин • 14 дней назад
это лучший урок по js ! чувак талант
👍 0
Victor Mog • 19 дней назад
К чему тогда этот новый термин _"замыкание",_ если есть логичный и старый термин из С/С++ _"область видимости"?!_
👍 1
слава шикер • 21 день назад
Я хочу от тебя детей;)
👍 0
Александр Киракосян • 24 дня назад
а можно принимать addevantListener() metod без исползвания this?
👍 0
Александр Киракосян • 24 дня назад
thank you .
👍 0
T4rry Gaming • 1 месяц назад
слово ЗЫС!
👍 0
Sergey Emelyanov • 2 месяца назад
Спасибо!
👍 0
Igor Zolotarev • 2 месяца назад
Дмитрий, благодарю за урок.
А вот для таких как я, кто с первого раза ничего не понял.
Обучение JavaScript "this - контекст исполнения функции"
Посмотри и все поймешь ---
👍 0
Constantin Останин • 2 месяца назад
this Это как че еэто как то вроде типа там ВОЗВРАТ ОБЪЕКТА СОБСТВСВЕНН...
👍 0
Гематоген Гематогенович • 3 месяца назад
callback MOSHNO))
👍 0
Aleksejs Aleksejevs • 3 месяца назад
Учитель! Подскажите пожалуйста, на 1:30:19 вы создаёте функцию callback, которая выполниться после того как элемент исчезнет, так зачем же создавать эту функцию, если можно в if statement после clearInterval, прописать исчезновение?
👍 0
Just For Lulz • 2 месяца назад
Aleksejs Aleksejevs насколько я понял тут фишка в том что можно любое действие прописать , а не определенное - то есть функция становится универсальной и её можно применять к разным объектам с разным колбэком . Просто в параметр функции где привязан колбэк можно записать любую функцию
👍 0
Vazgen Aleksanyan • 4 месяца назад
Все что надо смотреть, ищу с начало у Лаврика.
👍 0
Igor Z • 5 месяцев назад
1:28:15
👍 0
Valeria Valeria • 5 месяцев назад
кот на 17-й минуте шикарный)
👍 0
sdsa asdasd • 5 месяцев назад
Дмитрий красава!
👍 0
Vladis43 • 5 месяцев назад
+
👍 0
Ваня Гошовський • 5 месяцев назад
Спасибо! Некоторые знания по JS были. Хотел узнать немного о замыкании. Так получилось, что узнал что за кулбэки, и как используються - кажется с этим я хорошо разобрался. А вот с замыканиями - я только понял что они используются для получения каких то переменных (обьектов или значиния) из функции которую интерпретатор в начале запуска проинициализировал, но мы еще не использовали, или уже вышли за границы её видимости. Как то так я понял. Вообщем мутно еще понимаю замыкание. И контекст связаный с замыканием так же плохо зашел. Буду разбираться с этим!)
Можете книжку посоветовать хорошую по JS?
👍 0