Telegram: https://teleg.one/js_by_vladilen
Instagram: https://www.instagram.com/vladilen.minin
VK: https://vk.com/vladilen.minin
Группа VK: https://vk.com/js_by_vladilen
Полный курс по Angular 8+:
https://clc.to/angular
React Native: мобильная разработка на JavaScript:
https://clc.to/rnative
Полный курс по ReactJS:
https://clc.to/react
Поддержать выпуск новых видео:
ЯД: https://money.yandex.ru/to/410013757655670
PayPal: https://www.paypal.me/vladilenm
JavaScript. Что такое контекст this. Как работает call, bind, apply
В видео вы узнаете, что такое контекст в JavaScript, как он работает, как его передавать и что с ним можно делать.
В уроке вы узнаете про методы call, bind, apply – разницу между ними
В конце вы увидите практическое применение prototype в связке с контекстом и ключевым словом this
Сложный JavaScript простым языком:
Original source
47 responses to “Урок 2. JavaScript. Что такое контекст this. Как работает call, bind, apply”
Спасибо за ролики!)
Красава!
а как связать несколько пользователей в один?
класно пояснюєш, молодець
Просто супер понятно, каждый видос заслуживает высших похвал
Крутая подача и объяснение материала!!!! Владилен Топ!
А я когда учился джаваскрипеть читал, что лучше не трогать базовые классы, а делать свой функционал в своих классах, функциях и т.д.
Благодарю за адекватное знакомство с такой важной темой и за сэкономленные часы, дни… Возможно и не все сказано, я не в курсе, уверен дальше будет проще разобраться. Буду всем рекомендовать.
Чувак, это самое ясное и понятное из всего, что я слышал о понятии «контекст». Когда учил ооп в пхп мозг взрывался от этого слова. Сенкью вери мач. Спустя полгода практики на место становится теория. Лайк, подписка, респект!
Спасибо, реально быстро и всё понятно
Спасибо за качественный контент)
5:40, я вот не понимаю, почему если мы в bind передаем this, то туда идет window, а не сам объект person? Ведь Если в этом объекты создать функцию, которая показывает this, она покажет объект.
Правильно ли я понял, что если просто внутри объекта указать this – она будет вести на глобальный объект, на объект person this будет указывать только внутри метода этого же объекта?
Не просто показал конекст this)) а научил менять вселенную) вселенную в моем мозге)
Подписался,что редкость. Лайк тоже. Интересные уроки. Жду правильный node.js и web Socket.
Не понимал раньше что англичане подразумевали под context… Какой контекст??? Чего контекст??? Оказалось, все так просто.
Спасибо.
Все из-за трудностей перевода, иногда думаешь что слово, или фраза означает одно, а на самом деле это не так.
Как понять, как работает мозг думающий на другом языке?
Вот учишь, к примеру, javascript, а приходится понимать и логику мыслительных процессов англоязычных разработчиков этого языка…. Как-то так…
И да, потому что 42….
А ленка то уже старая))
Спасибо!
кто может объяснить такую ситуацию
var obj = {
b: 700,
myMethod: function(a){
this.c = a;} //объект ссылается на "c" свойство которое создаётся на ходу
}
//создание метода вне объекта ES6
obj.fun = (a) => {
this.d = a;
// //пытаюсь заново ссылается на новое свойство "d" которое создастся на ходу
console.log(this);//this не ссылается на obj
. ссылается на window
console.log(obj);
//свойства d не появилось
}
obj.fun(200);
хотя по старому варианту всё работает
obj.fun = function(a) {
this.d = a;
// //пытаюсь заново ссылается на новое свойство "d" которое создастся на ходу
console.log(this);//this равносильна obj
console.log(obj);
//свойства d появилось
со значением 200
}
не закрывай контент а то бошку оторву тебе:)
Спасибо большое Владилен))) ты просто пушка !))
Вот это вообще офигенный урок
Спасибо огромное!
ВАУ!!!!!!!
Спасибо, Владилен… всё про себя рассказал: тебе 25, у тебя есть девушка, зовут её Лена и ей 23 года…
Спасибо. Ты крутой.
Просто восхитительные уроки, во всяком случае первые два)) Только начала смотреть плейлист)) Надеюсь, что я дальше буду смотреть с таким же удовольствием. Класс!!! Спасибо большое
Плюс)
кстати, здесь этого вроде не упоминалось: в режиме use strict console.log('hello', this) будет возвращать undefined, а не window
ДААААА!!! НАКОНЕЦ-ТО НОРМАЛЬНОЕ ОБЪЯСНЕНИЕ!!!!!!!
Сильно мощно молодёжно.. Спасибо!!!
12:32 А я уж собирался звонить
Хорошая подача так и до революции в русском ютубе не далеко, всё таки имя с таким значением. Владимир Ленин))
Спасибо
Красава
Спасибо за материал, но это на каких собеседованиях предлагают изменять встроенные прототипы? Нужно обязательно добавить, что это плохая идея. А в целом, классно. https://learn.javascript.ru/native-prototypes#native-prototype-change
круто, молодец. Все четко и понятно!!!
Спасибо большое
Спасибо, круто рассказываешь!
Жаль, правда, что стрелочные функции не упомянул
Так код работает:
console.log(`Name is ${person.name}`)
вот так не работает // с пометкой "хоть ты разъебись"
console.log(`Name is ${this.name}`)
Я переписал код один в один полностью. Повторил каждый шаг. Ну что может быть, мать его, не так??
Главное, я ведь уже сто раз работал с this. Просто решил зайти, дабы освежить в памяти. И тут на тебе встал на ровном месте. Бомбит жутко
И кстати, спасибо за обратные кавычки, это мне чем-то напомнило ламповый питон))
Просто лучший
С первого раза понял!Другие так не могут обьяснить!Владилен я тебе благодарен!)))
гениальное видео, все очень понятно, спасибо большое!
Считается же плохой практикой менять глобальные прототипы?
из MDN
Плохая практика: расширение базовых прототипов
Одной из частых ошибок является расширение Object.prototype или других базовых прототипов.
Такой подход называется monkey patching и нарушает принцип инкапсуляции. Несмотря на то, что ранее он использовался в таких широко распространенных фреймворках, как например, Prototype.js, в настоящее время не существует разумных причин для его использования, поскольку в данном случае встроенные типы "захламляются" дополнительной нестандартной функциональностью.
плейлистов с основами пруд пруди. миллион
а вот со сложными частями, что-то сложнее функций, циклов и прочее – такого гораздо и гораздо меньше
крутой плейлист
название плейлиста абсолютно соответствует
Раз тема про bind, call, apply, то и задание надо решать с этим же функциями)
function multiply (a) { console.log(this.map(v => v * a)) }
let mult = multiply.bind(array);
mult(2); https://jsfiddle.net/xreider/dsLuh54p/
Большое спасибо!
Объект Лена 😛