自执行箭头功能

时间:2018-07-18 01:37:43

标签: javascript ecmascript-6

我想知道如何在语法上更改此自执行的导出函数:

export default (() => ({
  get items() {
    if (process.env.NODE_ENV === 'test') {
      return { message: 'this is testing' };
    } else {
      return { message: 'this is not testing' };
    }
  },
}))();

使用ES6箭头功能并在末尾使用导出的语句(我最好的,错误的猜测):

const items = (() => {
  if (process.env.NODE_ENV === 'test') {
    return { API_AUTHORITY: 'this is testing' };
  } else {
    return { API_AUTHORITY: 'this is not testing' };
  }
})();

export default items;

谢谢!

2 个答案:

答案 0 :(得分:1)

不需要IIFE-只需导出对象即可:

const obj = {
  get items() {
    if (process.env.NODE_ENV === "test") {
      return { message: "this is testing" };
    } else {
      return { message: "this is not testing" };
    }
  }
};
export default obj;

如果您确实想要一个函数,则将其定义为一行,然后可以在导出时执行它,尽管意图并不十分清楚:

const fn = () => ({
  get items() {
    if (process.env.NODE_ENV === "test") {
      return { message: "this is testing" };
    } else {
      return { message: "this is not testing" };
    }
  }
});
export default fn();

const fn = // same as above
// ...
const obj = fn();
export default obj;

答案 1 :(得分:0)

@ Li357在评论中提供了答案;该功能是不必要的:

export default { items: { message: process.env.NODE_ENV === 'test' ? 'this is testing' : 'this is not testing' } }