Урок 2. JavaScript. Что такое контекст this. Как работает call, bind, apply




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”

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

  2. Чувак, это самое ясное и понятное из всего, что я слышал о понятии «контекст». Когда учил ооп в пхп мозг взрывался от этого слова. Сенкью вери мач. Спустя полгода практики на место становится теория. Лайк, подписка, респект!

  3. 5:40, я вот не понимаю, почему если мы в bind передаем this, то туда идет window, а не сам объект person? Ведь Если в этом объекты создать функцию, которая показывает this, она покажет объект.

    Правильно ли я понял, что если просто внутри объекта указать this – она будет вести на глобальный объект, на объект person this будет указывать только внутри метода этого же объекта?

  4. Не понимал раньше что англичане подразумевали под context… Какой контекст??? Чего контекст??? Оказалось, все так просто.
    Спасибо.
    Все из-за трудностей перевода, иногда думаешь что слово, или фраза означает одно, а на самом деле это не так.
    Как понять, как работает мозг думающий на другом языке?
    Вот учишь, к примеру, javascript, а приходится понимать и логику мыслительных процессов англоязычных разработчиков этого языка…. Как-то так…
    И да, потому что 42….

  5. кто может объяснить такую ситуацию

    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
    }

  6. Просто восхитительные уроки, во всяком случае первые два)) Только начала смотреть плейлист)) Надеюсь, что я дальше буду смотреть с таким же удовольствием. Класс!!! Спасибо большое

  7. кстати, здесь этого вроде не упоминалось: в режиме use strict console.log('hello', this) будет возвращать undefined, а не window

  8. Хорошая подача так и до революции в русском ютубе не далеко, всё таки имя с таким значением. Владимир Ленин))

  9. Так код работает:
    console.log(`Name is ${person.name}`)
    вот так не работает // с пометкой "хоть ты разъебись"
    console.log(`Name is ${this.name}`)
    Я переписал код один в один полностью. Повторил каждый шаг. Ну что может быть, мать его, не так??
    Главное, я ведь уже сто раз работал с this. Просто решил зайти, дабы освежить в памяти. И тут на тебе встал на ровном месте. Бомбит жутко
    И кстати, спасибо за обратные кавычки, это мне чем-то напомнило ламповый питон))

  10. Считается же плохой практикой менять глобальные прототипы?

    из MDN
    Плохая практика: расширение базовых прототипов

    Одной из частых ошибок является расширение Object.prototype или других базовых прототипов.

    Такой подход называется monkey patching и нарушает принцип инкапсуляции. Несмотря на то, что ранее он использовался в таких широко распространенных фреймворках, как например, Prototype.js, в настоящее время не существует разумных причин для его использования, поскольку в данном случае встроенные типы "захламляются" дополнительной нестандартной функциональностью.

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

Leave a Reply