Javascript 导出函数范围定义混淆es6

Javascript 导出函数范围定义混淆es6,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我在导出时遇到了这两种语法。说我有一个文件叫actions.js和app.js 第一个看起来像这样 在actions.js中 export function addTodo() {} export function deleteTodo() {} and in app.js I have import { addTodo, deleteTodo } from './actions.js' addTodo() //call method 第二种方式是将每个函数包装到一个对象 in action

我在导出时遇到了这两种语法。说我有一个文件叫actions.js和app.js

第一个看起来像这样

在actions.js中

export function addTodo() {}
export function deleteTodo() {}
and in app.js I have

import { addTodo, deleteTodo } from './actions.js'
addTodo() //call method
第二种方式是将每个函数包装到一个对象

in action.js

const actions = {
   addTodo: function() {}
   delete: function() {}
}
export default actions
在app.js中

import actions from './actions'
actions.addTodo() // call method

他们两个做同样的事?使用这两种方法有什么区别吗?我更喜欢第一个,因为我可以从actions.js导入指定的函数。使用方法1是否存在任何范围泄漏?您的偏好是什么?

这两种样式之间的主要区别在于,第一种样式仍然可以有默认导出。您还可以使用和。第二种样式的所有其他导出都需要命名