@sergey19940808

Как работает JS?

1) Как работает сцепление методов ? Я полагаю что это просто последовательный вызов методов, но можно ли более подробно.

2) Нигде не видел подробного описания job queue это касательно промисов, пишут только что на каждом цикле событий (я про event loop) добавляется очередь промисов, которые нужно выполнить. Можно подробнее об этом?
  • Вопрос задан
  • 185 просмотров
Решения вопроса 1
coderisimo
@coderisimo Куратор тега JavaScript
Как работает сцепление методов : Каждый метод не только модифицирует объект, но и возвращает его .
Например :

// define the class
var Kitten = function() {
  this.name = 'Garfield';
  this.color = 'brown';
  this.gender = 'male';
};

Kitten.prototype.setName = function(name) {
  this.name = name;
  return this;
};

Kitten.prototype.setColor = function(color) {
  this.color = color;
  return this;
};

Kitten.prototype.setGender = function(gender) {
  this.gender = gender;
  return this;
};

Kitten.prototype.save = function() {
  console.log(
    'saving ' + this.name + ', the ' +
    this.color + ' ' + this.gender + ' kitten...'
  );

  // save to database here...

  return this;
};


и затем

new Kitten()
  .setName('Bob')
  .setColor('black')
  .setGender('male')
  .save();
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
Это называется method chaining или просто chaining.

Каждый метод должен не только выполнять свое действие, но и возвращать ссылку на объект.
Например:
// define the class
var Kitten = function() {
  this.name = 'Garfield';
  this.color = 'brown';
  this.gender = 'male';
};

Kitten.prototype.setName = function(name) {
  this.name = name;
  return this;
};

Kitten.prototype.setColor = function(color) {
  this.color = color;
  return this;
};

Kitten.prototype.setGender = function(gender) {
  this.gender = gender;
  return this;
};

Kitten.prototype.save = function() {
  console.log(
    'saving ' + this.name + ', the ' +
    this.color + ' ' + this.gender + ' kitten...'
  );

  // save to database here...

  return this;
};


Использование:
new Kitten()
  .setName('Bob')
  .setColor('black')
  .setGender('male')
  .save();
(код предоставлен coderisimo)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы