Fab*_*ler -1 javascript destructuring
是否可以覆盖分配的多个变量 let
const somefunction = (data) => ({a:1+data, b:2-data, c: 2*data, d: 3+1*data})
let {a, b, c, d} = somefunction(3)
Run Code Online (Sandbox Code Playgroud)
现在,在使用不同的参数调用 someFunction 之后,如何在一个语句中覆盖 {a, b, c, d} ?
const somefunction = (data) => ({a:1+data, b:2-data, c: 2*data, d: 3+1*data})
let {a, b, c, d} = somefunction(3)
{a, b, c, d} = somefunction(5)
Run Code Online (Sandbox Code Playgroud)
这似乎有效,但我更漂亮会删除前导分号(+ 语法很疯狂)
const somefunction = (data) => ({a:1+data, b:2-data, c: 2*data, d: 3+1*data})
let {a, b, c, d} = somefunction(3)
;({a, b, c, d} = somefunction(5))
Run Code Online (Sandbox Code Playgroud)
还有其他方法吗?
您需要将 {} 包裹在 () 中,该箭头函数没有用于分组语句的括号:
const somefunction = data => ({a:1+data, b:2-data, c: 2*data, d: 3+1*data});
const {a,b,c,d} = somefunction(3)
console.log(a,b,c,d)Run Code Online (Sandbox Code Playgroud)
或者使用 {} 并返回
const somefunction = data => {
return {a:1+data, b:2-data, c: 2*data, d: 3+1*data}
};
const {a,b,c,d} = somefunction(3)
console.log(a,b,c,d)Run Code Online (Sandbox Code Playgroud)
使用 let 覆盖:
const somefunction = data => ({a:1+data, b:2-data, c: 2*data, d: 3+1*data});
let {a,b,c,d} = somefunction(3);
console.log(a,b,c,d);
({a,b,c,d} = somefunction(5));
console.log(a,b,c,d);Run Code Online (Sandbox Code Playgroud)
使用 var 覆盖(我不会;))
const somefunction = data => ({a:1+data, b:2-data, c: 2*data, d: 3+1*data});
var {a,b,c,d} = somefunction(3);
console.log(a,b,c,d);
var {a,b,c,d} = somefunction(5);
console.log(a,b,c,d);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
177 次 |
| 最近记录: |