Javascript:将函数参数重新分配给临时变量是否足够?

时间:2018-02-19 09:43:21

标签: javascript flowtype

使用流量时,可以选择experimental.const_params=true treats function parameters as const bindings。我可以通过将它分配给临时变量来轻松地使错误消失,但是这实际上是否解决了重新分配/改变函数参数的错误形式?

例如:

function someFunc(p1) {
  let temp = p1;
  temp.x = 10
  return temp
}

相反:

function someFunc(p1) {
  p1.x = 10
  return p1
}

对于流量,这足以防止流量引发错误。

它是否真正解决了该规则试图解决的问题?如果不是应该使用什么?

1 个答案:

答案 0 :(得分:0)

这与传递的内容有关。在您的示例中,p1是一个对象,因此该参数是一个对象引用。对象的成员不受' const'类型。如果要防止对象发生变异,您可能需要查看Object.freeze()。