Обучение JavaScript 'this - контекст исполнения функции' You don't know js

preview_player
Показать описание
Запись стрима.

Если вам понравилось то подписывайтесь на ютуб и на соц сети

Данный урок содержит в себе описание работы ключевого слова this (контекст исполнения), а так же связанные с ними методики разработки, проблемы и их решения.

Рассматриваются такие понятия как:
1) Default Binding - связывание по умолчанию
2) Implicit Binding - скрытое связывание
3) Explicit Binding - явное связывание
4) new Binding - связывание при создании объекта

А так же различие между call-stack и call-site, и поговорим немного про стрелочные функции.

Музыка:

Треки:
Рекомендации по теме
Комментарии
Автор

Актуально и на высоком уровне, даже в 2021 !! На много лучше, чем новые ролики, с 200к просмотров!

LuckyStilet
Автор

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

ВиталийУряшник-бш
Автор

ЭТО ОГОНЬ! Лучшее объяснение и самое подробное про this, что я видел.

pugalosolomennoe
Автор

С этого ролика я еще раз понял, насколько плохой var)

ammoney
Автор

только теперь понял весь механизм и работу this, СПАСИБО за труд!!!!

TheWin
Автор

Отличное видео, после прочтения книги было очень полезно!! Большое спасибо автору!!
ps ждем новые видео :)

vr
Автор

круто, большое спасибо!по больше подобных видео, с более глубоким толкованием

SERAPROF
Автор

Крутой урок по this, помог разобраться глубже.

codenamecobweb
Автор

очень понравилось что долго расказывал и внятно спасибо

GloriousJenya
Автор

передаем в контекст контекст .теперь в контексте контекст и возвращаем контекст)не камень в огород..но весело

yuripetuhov
Автор

Ну думал хоть тут пойму эту 50:20 ...

var bar = function( ){
return foo.apply( obj, arguments )
};

var b = bar( 3 );

Я так понимаю, в переменную "b" записывается РЕЗУЛЬТАТ выполнения функции bar ( ) ну хорошо, как машу вать связан результат выполнения функции bar( ) и foo.apply( obj, arguments )??? Если мне не изменяет моё понимание, то в теле функции bar( ) возвращается ДРУГАЯ ( ДРУГАЯ ) функция foo( ), как условие foo( obj, ARGUMENTS (ВОТ ЭТО ВОТ)) может быть связанно с bar( 3 )

Хм, ну я предполагаю другой вариант типо


var bar = function( ){
return 5+arguments[ 0 ];
};

var b = bar( 3 );

console.log( b ); //8


и это выглядит лично для меня логичным! НО блин, ну как вызов функции foo( obj, arguments ) связанно с bar( 3 )??? Мы же не передаём этот аргумент в вызов FOO( ) (нет, ну судя по результату выполнения кода, именно так и получается), но я всё равно не вижу связи, как при foo ( obj, arguments ) число 3 ( переданное аргументом в bar( ) при вызове ) записалось в массив arguments[ ... ] при вызове другой ( подчеркну другой ( other ) ) функции... Единственное, я бы предположил следующее bar.apply( obj, arguments ) вот так бы я понял... а иначе Ху" З. Объясните плиз, кто это если понимает. . .

Или это из разряда . . .

function foo( something ){
return function( ) {
console.log( "Hello "+something );
}
};

foo( "Mark" )( ); // Hello Mark

Верно? Тобиж принцип областей видимости, типо функция, возвращаемая из другой функции получает через условную ссылку [[ scope ]] доступ к параметрам, переменным и другим объявлениям в о.в. родительской функции? Это правильное объяснение?

return

TheKirk
Автор

function foo(){
console.log(this.a);

}
var a = 2;
foo();
Вот в этом примере, консоль выведет 2 и без this, а если сделать let a = 2, c this будет - undefined.

ДмитрийДубов-то
Автор

Спасибо за качественный материал!
Такой вопрос, можно ли считать, что Default Binding есть частным случаем Implicit Binding, где в роли связаного объекта виступает global (напр. window)?

MichalSmolinsky
Автор

Я хочу написать платформу как Инстаграм + твич на JS, верёвку и мыло уже купил, что дальше?

mitrasu
Автор

Но тогда получается что для window var присваивается как его свойство? Точно)
var x === window.x

И наконец вроде понял.Теперь главное не забыть.

direktorukraini
Автор

Почему никто не может нормально обяснить this? Все блудословят со словом контекст

jimbeam
Автор

Ух, мозг просто кипит, думаю пойму позже, но на данный момент не понятен самый последний кусок видео 1:15:00 как функцию foo внутри которой setTimeout можно забиндить к объекту без стрелочных функций?
*UPD:* возможно я хитрожопый ублюдок считерил, но как вариант в связи с тем, что this в данном примере не является частью замыкания перед объявлением setTimeout можно создать переменную *var _this = this;* И в setTimeout уже использовать ни console.log(this.a), a *_this.a* 😀

stewart
Автор

"Default Binding работает только когда "use strict" отключен" . Так он по-умолчанию всегда включен Бабелем, какой смысл первые 30 минут показывать примеры которые не работают ?

angular-developer-et
Автор

Это маразм какой-то. Хрен все запомнишь.

direktorukraini