g1er / Andrew

0 stars 0 forks source link

Методы объектов и this #6

Closed IgorKulishov closed 6 years ago

IgorKulishov commented 6 years ago

Мы приближаемся к Angular - Angular это framework и поддерживается на нескольких языках. Один из самых распространенных языков Angular это TypeScript (который после компеляции переводит код в JavaScript на выбор в ES5 или ES6). По синтаксису TypeScript очень похож на такие объектно-ориентированные языки как Java, C# - там так так же есть понятия классов, методов, конструктора. В связи с этим я хотел бы ознакомить тебя с методами, конструкторами в ES5, затем тоже самое в ES6 (который поддерживается всеми браузерами) в котором так же есть методы, конструкторы и даже классы.

После чего мы пройдем основы TypeScript (это будет не долго после ES6) и уже начнем Angular. Важно понимать что ES6 будет хорошим навыком для тебя поскольку обладает большим количеством встроенных методов (но мы пройдем только основы и остальное возможно после Angular ты можешь посмотреть самостоятельно или вместе по запросы).

Итак тема урока методы в JavaScript ES5.

Методы – свойства объектов, содержащие функции

Запусти Пример в консоле в браузере:

//определение объекта и свойств объекта (свойству **speak** присвоена ф-ция **speak** )
var salesMen = { type: "продавец", speak: speak };

//определение ф-ции **speak** для свойства speak объекта **salesMen**:
var speak = function (words) {
  console.log(this.type + " : " + words);
}

//вызов ф-ции **speak** через свойство (метод) **speak** объекта salesMen с передачей значения аргумента:
salesMen.speak(" купите компьютер!");

Обращаю внимание: А) в объекте 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/

g1er commented 6 years ago

Да, мне знаком this по предыдущим урокам. И в JS, и в jQuery при выполнении заданий я им активно пользовался. Как правило, this используется в тех функциях, которые составляются не для какого-то одного объекта, а для использования их в разных местах. Таким образом this будет указывать на того родителя, который эту функцию пользует.

IgorKulishov commented 6 years ago

При выполнении в консоле , убери все комментарии (могут вызвать ошибку)