参数

时间:2017-04-18 11:55:43

标签: javascript parameters ecmascript-6 variable-assignment destructuring

我得到了以下想法,但我不太确定,如果有可能,这会有效。

IS-CASE:

handleChange({ target: { value } }) {
    const intValue = parseInt(value, 10);
    // doSomething(intValue);
}

应该-CASE:

handleChange({ target: { value: parseInt(value, 10) } }) {
    // doSomething(value);
}

我想要的:我想直接在函数的头部解析value-parameter到Integer。所以我可以在整体中以整数形式访问它。

我知道,我的应该状态不是有效的js语法,但我想知道,如果有可能,我可以实现这一点。

我已经知道,这是有效的:

let {length : len} = 'abc'; // len = 3

所以我正在寻找类似的行为:

let {parseInt : int} = '123'; // int = 3

致以最诚挚的问候,期待提出建议,

迈克尔

1 个答案:

答案 0 :(得分:1)

这样的东西会起作用,但是有一个问题

为简单起见,我仅使用{ value }代替{ target: { value } }

function handleChange({
  value = 10, // declare this first so you can use the variable later
  intValue = parseInt(value, 10) // intValue shouldn't be passed as argument
} = {}) {
  console.log(intValue);
}

handleChange({ value: "100" });

但是当intValue是函数param [0]中的属性时,它将给出除预期之外的结果。

handleChange({ value: "100", intValue: 10 });
当您真正希望它记录100时,

会记录10。所以我不建议这样做,因为这是漏洞。

相关问题