Метод — это функция, доступная через объект. Синтаксически всё, что стоит после точки и вызывается со скобками, обычно является методом:
const player = {
name: 'Аня',
score: 0,
addScore(points) {
this.score += points;
}
};
player.addScore(10); // вызов метода
Вызов метода отличается от простого вызова (см. главу 2) присутствием «владельца» слева от точки. И именно этот владелец становится this внутри функции.
Что в этой главе
Две подглавы, покрывающие типовое поведение и главную ошибку:
- this в вызове метода — базовое поведение с обычными объектами, наследование через прототип, поведение в ES6-классах. Плюс примеры реальных use cases: chainable API, fluent builders, DOM.
- Опасность: отделение метода от его объекта — классическая ошибка, когда метод передают как callback или присваивают в переменную. this теряется. Три способа исправить и разбор React-паттернов.
Метод-вызов — кости объектно-ориентированной части JavaScript. Классы, коллекции, DOM API, event emitters — все построены на вызовах методов, и правило про this = object работает в них одинаково.