【发布时间】:2019-09-10 18:29:03
【问题描述】:
有没有办法就地解构 JS 对象,而不是将解构后的变量分配给作用域?
不要这样做:
const { a, b, c } = obj;
someFunction(a, b, c);
我想这样做:
someFunction({a, b, c} from obj);
或功能等效的东西。
我想在有这两个规定的情况下这样做:
我不想将变量名放入封闭范围内。
我不想传递整个对象
obj,因此无法选择展开运算符。
我剩下的唯一选择是使用
someFunction(obj.a, obj.b, obj.c);
在这种情况下这很好,但当obj 是一个长标识符时会降低可读性。
这样的事情可能吗?我尝试在表达式中使用赋值作为解决方法,但我的 IDE 抱怨它找不到名称 a、b 和 c:
someFunction({a, b, c} = obj);
【问题讨论】:
-
如果你的目标是 es6 环境,你可以使用解构参数来定义你的函数,例如
function f({a,b,c}){ /*...*/ }或者你不想这样,因为你不想传递整个对象
标签: javascript typescript function object ecmascript-6