Объявление методов

140
07 июля 2018, 04:50

Объясните этот пример:

var test = {
    test1(){
        alert('test');
    }
}
test.test1();

Т. е. тут не используется function.
Не нашёл описания данного синтаксиса в интернете.
В каких случаях можно не использовать function при назначении метода?
Это обычный геттер?

Answer 1

Это объявление метода объекта.
Методы имеют некоторые отличия от функций и ключей.
Подробнее.

В любых случаях можно не использовать, если это объявление метода:

var obj = {
  property( parameters ) {},
  *generator( parameters ) {},
  async property( parameters ) {},
  async* generator( parameters ) {},
  // with computed keys:
  [property]( parameters ) {},
  *[generator]( parameters ) {},
  async [property]( parameters ) {},
  // compare getter/setter syntax:
  get property() {},
  set property(value) {}
};

Геттер может быть создан, если поставить перед определением метода get:

let obj = { 
  z () { 
    console.info('I am obj.z method'); 
  }, 
   
  get n () { 
    return 42; 
  } 
}; 
 
console.info(obj.n);

Заметка: методы нельзя использовать как конструкторы:

let obj = { 
  f: function () {}, 
  m () {} 
}; 
 
console.info(new obj.f()); // {} 
console.info(new obj.m()); // TypeError: ...

READ ALSO
Кнопка Start/Stop на JQuery

Кнопка Start/Stop на JQuery

По заданию нужно сделать чтобы при нажатии на кнопку "Start" она изменяла свою подпись на "Stop" и наоборотПытался сделать так:

207
Как получить массив точек на Yandex map?

Как получить массив точек на Yandex map?

Нужно объединить множество точек в кластерыДля этого необходимо их сначала получить и поместить в массив

159
EventListener ошибка в консоли при запуске кода

EventListener ошибка в консоли при запуске кода

Имеется попап, который на момент запуска кода еще не существует в DOM и добавляется он туда только при определенных действиях пользователя...

174