sup*_*ize 4 javascript syntax ecmascript-6
我有一个对象:
let obj = {
"t":
{
"en": {
"head" :"hello",
"sub" : "this is great"
}
}
"link": {}
}
Run Code Online (Sandbox Code Playgroud)
我正在解构它:
{ t: { en }}
Run Code Online (Sandbox Code Playgroud)
是否可以在同一个解构语句中重新t分配en?
en所以我想要分配给变量的对象t而不是en
当您解构一个对象时,您可以指定propname: variablename将该属性分配给具有不同名称的变量。仅输入不带变量的属性名称相当于propname: propname对变量和属性使用相同的名称,但您不需要使用该快捷方式。
所以你可以这样做:
let obj = {
"t":
{
"en": {
"head" :"hello",
"sub" : "this is great"
}
}
}
let { t: { en: t } } = obj;
console.log(t);Run Code Online (Sandbox Code Playgroud)
第一个t:只是一个属性名称,它指定该值是一个也需要解构的对象。在该结构中,我们使用propname: variablename语法,因此en属性被分配给t变量。
在函数定义中,这看起来像:
const Home = ({ t: { en: t }, link}) => console.log(t);
let obj = {
"t":
{
"en": {
"head" :"hello",
"sub" : "this is great"
}
}
};
Home(obj);Run Code Online (Sandbox Code Playgroud)
请注意, 的两种用途之间没有实际关系t。该变量实际上可以是任何东西,例如
const Home = ({ t: { en: blah }, link}) => console.log(blah);
Run Code Online (Sandbox Code Playgroud)