将参数传递给命名导出对象文字内部的函数

时间:2018-10-30 14:48:08

标签: javascript ecmascript-6

使用命名导出返回由函数组成的对象文字时,是否可以将参数传递给这些函数之一?

例如,假设下面的函数根据用户是否为管理员返回条件结果:

// gridConfig.js
function getColumnDefs(isAdmin = false) {
  // conditionally return columns
  return {
    orders: [ ... ], 
    ...
  }
}

export const config = {
  columnDefs: getColumnDefs(),
  rowDefs: getRowDefs(),
  ...
};

// main.js
import { config } from './gridConfig';

function doStuff() {
  const { columnDefs, rowDefs } = config;
  grid.columnDefs = columnDefs['orders'];
  ...
}

如果我将参数添加到导出内部的函数调用中,则表示未定义参数。向导出别名添加参数会产生语法错误。即使允许这样做,也不清楚在main.js中将参数传递到哪里。

以这种方式构造导出时,是否可以通过某种方式传递参数?

2 个答案:

答案 0 :(得分:1)

bookdown

答案 1 :(得分:1)

也许保持简单可能会有用:)

export const config = (isAdmin) => ({
  columnDefs: getColumnDefs(isAdmin),
  rowDefs: getRowDefs(),
  ...
});



// Import

import { config } from '[...]'; // Placeholder path of import


const myConfigFalse = config(false);
const myConfigTrue = config(true);