Closed IgorKulishov closed 6 years ago
Да, мне знаком this по предыдущим урокам. И в JS, и в jQuery при выполнении заданий я им активно пользовался. Как правило, this используется в тех функциях, которые составляются не для какого-то одного объекта, а для использования их в разных местах. Таким образом this будет указывать на того родителя, который эту функцию пользует.
При выполнении в консоле , убери все комментарии (могут вызвать ошибку)
Мы приближаемся к Angular - Angular это framework и поддерживается на нескольких языках. Один из самых распространенных языков Angular это TypeScript (который после компеляции переводит код в JavaScript на выбор в ES5 или ES6). По синтаксису TypeScript очень похож на такие объектно-ориентированные языки как Java, C# - там так так же есть понятия классов, методов, конструктора. В связи с этим я хотел бы ознакомить тебя с методами, конструкторами в ES5, затем тоже самое в ES6 (который поддерживается всеми браузерами) в котором так же есть методы, конструкторы и даже классы.
После чего мы пройдем основы TypeScript (это будет не долго после ES6) и уже начнем Angular. Важно понимать что ES6 будет хорошим навыком для тебя поскольку обладает большим количеством встроенных методов (но мы пройдем только основы и остальное возможно после Angular ты можешь посмотреть самостоятельно или вместе по запросы).
Итак тема урока методы в JavaScript ES5.
Методы – свойства объектов, содержащие функции
Запусти Пример в консоле в браузере:
Обращаю внимание: А) в объекте salesMen определено свойство / метод: speak : speak Б) далее определена сама ф-ция speak В) this в JavaScript ES5 (в отличии от JavaScript ES6/ES2015 - поговорим об отличии позже когда будем его изучать) действует как ссылка на родительский обьект, внутри которого this выполняется. В данном примере ф-ция вызывается/выполняется внутри метода salesMen.speak :
salesMen.speak(" купите компьютер!");
поэтому this указывает на сам объект salesMen (другими словами this и есть объект salesMen). Таким образом this.type при запуске внутри salesMen.speak() укажет на свойство type объекта salesMen, значение которого определено как продавец.На дополнительное чтение можешь прочитать раздел Методы из книги https://habrahabr.ru/post/241587/