this

// todo - Что такое this в js? Зачем нужен? Как определить?

// ! this // * this - это контекст вызова, указывает на какой то объект, в контексте которого вызвана функция // ? https://habr.com/ru/company/ruvds/blog/419371/ // ? https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Operators/this // ? https://learn.javascript.ru/object-methods // ! this возможно определить ТОЛЬКО после вызова и среды вызова

// todo Способы вызова функций (не стрелочный): // * 1) direct invocation - прямой вызов myFunc()

// ? При прямом вызове - будет глобальный объект либо ноды, либо браузера (виндоу)

// * 2) method invocation - вызов метода из объекта obj.myMethod()

// * 3) с помощью методов ф-ий (bind, call, apply) - indirect invocation

// * 4) constructor invocation - вызов конструктора new func()

// !Пример использования this в ф-ии конструкторе

// * Создание экземпляра человека

// todo Алгоритм определения контекста this в НЕ стрелочных ф-ях // * 1) Ф-я вызвана через new -> this === новосозданный пустой объект // * 2) Ф-я вызвана как метод объекта -> this === сам объект // * 3) call, bind, apply - потом // * 4) В остальных случаях -> this === глобальный объект (либо виндоу, либо нода)

// ! Cтрелочные ф-ии // ! Стрелки не могут использоваться как конструкторы!

// * call, aplly, bind // * call - добавляет внутрь ф-ии объект и делает его контекстом

// * apply - делает всё то же что и call, только в arguments принимает объекты (массивы) // ! apply можно передать в виде массивом

// * bind - в отличие от call & apply не вызывает ф-ию сразу, а возвращает новую с привязанным контекстом

Last updated