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