Инициализация объектов в JS

Скорее всего и заголовок данного вопроса выбран не правильный! Есть код

const $ = {};

$.modal = function (options) {
  return {
    close() {
      //какой-то код
    },
  };
};

const priceModal = $.modal({
  property: {
    handler() {
      priceModal.close();
    },
  },
});

В коде ошибок нет! Вопрос: как в момент присвоения значения в переменную "priceModal" мы тут же можем с ним работать? Объясните пожалуйста как это работает?

Вот если было бы так как внизу, вопросы бы не возникали:

const priceModal = $.modal({
  property: {
    handler() {
      //какой-то код, не важно
    },
  },
});

priceModal.какой-то_там_метод_в_полученный_в_результате_присвоения()

Объясните пожалуйста как это работает?!


Ответы (1 шт):

Автор решения: Igor

как в момент присвоения значения в переменную "priceModal"

Вызов priceModal.close() происходит не перед присвоением priceModal, а позже, когда вызывается метод handler. К этому времени, переменная priceModal имеет присвоенное значение. Так что все в порядке.

→ Ссылка