Ecmascript 6 我们如何在对象分解的同时应用该方法?

Ecmascript 6 我们如何在对象分解的同时应用该方法?,ecmascript-6,object-destructuring,Ecmascript 6,Object Destructuring,我有一个复杂的对象,我想提取一些键,应用一些函数,并用其他变量名和使用对象解构语法分配它,但找不到任何应用的解决方案 const alpha = { a: 'lower', b: '23.45' }; const { a: newA.toUpperCase(), b: parseFloat(floatB)} = alpha; 我知道这是错误的,因为这里还没有定义newA和floatB 我也试过了 const{a:a.toUpperCase(),b:parseFloat(b)}=alpha 但

我有一个复杂的对象,我想提取一些键,应用一些函数,并用其他变量名和使用对象解构语法分配它,但找不到任何应用的解决方案

const alpha = { a: 'lower', b: '23.45' };
const { a: newA.toUpperCase(), b: parseFloat(floatB)}  = alpha;
我知道这是错误的,因为这里还没有定义
newA
floatB

我也试过了

const{a:a.toUpperCase(),b:parseFloat(b)}=alpha

但这也不起作用

因此,我的问题是,我们如何才能以某种方式实现目标


或者我们需要在分配为新变量名后再做

你不能同时这么做。 尽管您正在声明/创建变量,但仍在进行分解。 在创建变量时,不能执行函数

所以, 第1步->从alpha中分解所需内容。
步骤2->执行您需要的函数

,但一般来说,我们可以在创建变量时执行函数,例如`let x=b.toUpperCase()`这是一种特殊情况,在这种情况下,您需要追加/chain.toUpperCase,因为它存在于b的原型链中。您还可以从原型链中解构方法。例如,const a=[1,2,3,4],现在如果执行{length}=a,并且console.log(a),则得到4。同样,因为它是一个存在于原型链上的方法。您的意思是
a.prototype.toUpperCase():newA
可以工作@实际上,evedes
length
不是一个原型方法(或getter),而是一个实例属性,这里不使用解构
const newA=alpha.a.toUpperCase(),floatB=parseFloat(alpha.b)更简单、更简短、更易读。这是我在OP中解释的一个简单案例。我想提取一个deepdown属性。然后您可能想显示您的实际案例。但是,这仍然是不可能的,在访问deep属性之后,您将需要额外的步骤。