Метод — это функция, доступная через объект. Синтаксически всё, что стоит после точки и вызывается со скобками, обычно является методом:

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 работает в них одинаково.