Методы объекта

В качестве значения свойству можно присвоить ссылку на функцию:

<Свойство>: function [<Имя>]([<Параметры>]) { ... }

Такое свойство становится методом объекта. Обращение к методам осуществляется аналогично обращению к свойствам, только после имени метода необходимо указать круглые скобки:

<Объект>.<Имя метода>([<Параметры>])

Для обращения к методам можно также использовать квадратные скобки, внутри которых указывается имя в виде строки или переменная:

<Объект>[<Имя метода>](<Параметры>)

Пример:

let car = {
   model: 'ВАЗ-2101',
   getModel: function() {
      return this.model;
   },
   setModel: function setModel(name) {
      this.model = name;
   }
};
car.setModel('ВАЗ-2109');
console.log( car.model );         // ВАЗ-2109
console.log( car.getModel() );    // ВАЗ-2109
car['setModel']('LADA Granta');
console.log( car['getModel']() ); // LADA Granta

Существует альтернативный способ определения методов, при котором ключевое слово function и двоеточие не указываются:

let car = {
   model: 'ВАЗ-2101',
   getModel() {
      return this.model;
   },
   setModel(name) {
      this.model = name;
   }
};
car.setModel('ВАЗ-2109');
console.log( car.getModel() );    // ВАЗ-2109
car['setModel']('LADA Granta');
console.log( car['getModel']() ); // LADA Granta

Определение методов-генераторов осуществляется следующими способами:

let obj = {
   arr: [1, 2, 3],
   gen1: function* () {
      for (let i = 0; i < this.arr.length; i++) {
         yield this.arr[i];
      }
   },
   *gen2() {
      for (let i = 0; i < this.arr.length; i++) {
         yield this.arr[i];
      }
   }
};
let iter = obj.gen1();
console.log(iter.next().value); // 1
console.log(iter.next().value); // 2
console.log(iter.next().value); // 3
console.log(iter.next().value); // undefined
iter = obj.gen2();
for (const value of iter) {
   console.log(value);
}

Учебник по Node.js и JavaScript
Учебник по JavaScript (Node.js) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов