Object.defineProperty относительно модуля

87
07 июля 2021, 21:10

Есть модуль содержащий методы, и не содержащий не одного объявленного или инициализированной глобально переменной. Есть механизм добавления свойств объекту Object.defineProperty.

Вопрос: можно ли(о правильности речь не идет) механизм Object.defineProperty использовать для добавления свойств к самому модулю (ведь при подключении модуля, он фактически становится объявленным объектом/переменной)?

Answer 1

Для ES Modules я не знаю точно что там как устроено, но для commonjs вполне себе можете. Это один из способов защитить экспорт от изменения в другом модуле.

// foo.js
Object.defineProperty(exports, 'bar', {
   get: () => 1,
   configurable: false
})
READ ALSO
Как получить следующий день недели?

Как получить следующий день недели?

С помощью этого кода можно получить следующий день с месяцем? С помощью этого кода я получаю день недели, но к числу не добавляется 1

89
Как запускать/останавливать видео по нажатию на кнопку?

Как запускать/останавливать видео по нажатию на кнопку?

Указал ниже скрипт, который запускается при нажатии на кнопкуПосле этого видео останавливается, но при повторном нажатии не хочет запускаться

95
Как последовательно вызвать асинхронную функцию с коллбеками?

Как последовательно вызвать асинхронную функцию с коллбеками?

Есть массив, для каждого элемента которого следует вызвать асинхронную функцию, возвращающую значение через коллбэк

73
В background script замораживаются таймеры

В background script замораживаются таймеры

Пишу расширение для Chrome и таймеры, в том числе не высокочастотные (более 1 мин) со временем просто перестают срабатывать в background скрипте расширения

87