从另一个返回对象内的函数的返回对象中构造变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从另一个返回对象内的函数的返回对象中构造变量相关的知识,希望对你有一定的参考价值。

我知道我可以做const { name: userName }= getName(),然后return { userName }

function returnName(){
  return { name: "Jason" }
}


function getUserName(){
  return {
    userName : getName()
  }
}

我可以在getUserName中只有一个返回区域内进行破坏吗?

function getUserName(){
 return {
   userName : {[getName()] : name} // I know it doesnt work, but want something like this
 }
}
答案

我想你正在寻找一个简单的财产访问:

function getUserName() {
  return {
    userName: getName().name
  };
}

不要让它变得比它需要的更复杂,你不需要在这里进行任何解构!

另一答案

像bergi指出你可以使用:

function getUserName() {
  return {
    userName: getName().name
  };
}

我想添加步骤以进一步澄清(所以你确切知道会发生什么):

  1. getName()函数返回一个对象,这个对象(虽然它在另一个对象文字中)只是一个普通的javascript对象。
  2. 要从此对象检索键值,只需使用dot .运算符即可

以上是关于从另一个返回对象内的函数的返回对象中构造变量的主要内容,如果未能解决你的问题,请参考以下文章

返回对象和返回引用

__getattribute__ 函数从另一个类返回对象值

javascript中构造函数的返回值问题和new对象的过程

构造函数复习

Python 从另一个全局对象构造一个可变全局对象

c++中用*this返回一个对象,会调用复制构造函数吗?