奇怪(webpack?)错误“TypeError:Object(...)不是函数”

时间:2017-10-04 11:23:41

标签: javascript webpack

遵循语法

const INITIAL_STATE = {
  userIsActive: getAccount() ? getAccount().status === "open" : false
};

导致浏览器抛出TypeError: Object(...) is not a function错误,我指出它是特定于语法的,getAccount()只返回像

这样的对象
{
  status: "open"
}

更改为此工作完全正常,甚至返回正确的数据

const accStatus = () => {
  try {
    return getAccount() ? getAccount().status === "open" : false;
  } catch (e) {
    console.error(e);
    return false;
  }
};

const INITIAL_STATE = {
  userIsActive: accStatus
};

但我不明白为什么它首先不起作用?

编辑:未触发该catch语句,这是奇数

1 个答案:

答案 0 :(得分:2)

在第一个例子中,userIsActive是一个布尔值,而在第二个例子中,它是一个返回布尔值的函数。这可能会奏效:

const INITIAL_STATE = {
  userIsActive: () => getAccount() ? getAccount().status === "open" : false
};