ES6 访问从同一文件导出 'default' 个实例

ES6 access exported 'default' instance from same file

我想知道,当您像这样使用 ES6 关键字 export 导出一些数据时:

export default {
  data: "Hello !"
}

您如何才能从同一个文件访问完全相同的导出数据?

编辑:当然,在导出变量之前没有声明...

如果你这样构建你的文件,你不能。

通常,您在导出语句之前定义要公开的函数和数据,然后在构建导出语句时引用它们object/function。

错误的方式:

export default {
    data: 'Hello!',
    myFn: function (str) {
        console.log(str);
    }
}

好办法:

var data = 'Hello!';

var myFn = function (str) {
    console.log(str);
};

// code that uses data and myFn

// shorthand for { data: data, myFn: myFn }
export default { data, myFn };

如果您想在内部访问您导出的函数,您应该在导出语句之外定义它们。像这样:

const data = 'Hello !';

const someFunc = () => {
  return data + ' Goodbye!'
}

export default {
  data,
  someFunc
}

现在变量和函数可以相互引用,而无需 "stuck" 在导出函数中。例如,以下将不起作用:

// WRONG!
export default {
  data: 'Hello !',
  someFunc: () => {
    return data + ' Goodbye!';
  }
}

尝试以下方法

export const data = 'hello';

对于我的类似用例——我希望轻松访问 ES6 模块从同一模块中导出的所有内容,仅用于调试目的。所以:

export const data = 'hi'
export const someFunc = () => `important data: ${data}`
export default someFunc()
export const funcToDebug() => {
    console.log(`what's going on here? ${myModule.exports.default}`)
}
var myModule = module