Ответ 1
Второй пример использует деструктурирование.
Это вызовет определенную переменную (включая функции), которая экспортируется из требуемого модуля.
Например (functions.js):
module.exports = {
func1,
func2
}
включен в ваш файл:
const { func1, func2 } = require('./functions')
Теперь вы можете называть их индивидуально,
func1()
func2()
в отличие от:
const Functions = require('./functions')
вызывается с использованием точечной нотации:
Functions.func1()
Functions.func2()
Надеюсь, что это поможет.
Вы можете прочитать о деструкции здесь, это очень полезная часть ES6 и может использоваться как с массивами, так и с объектами.