带有大括号的Javascript常量,其中有2个变量,由冒号分隔

带有大括号的Javascript常量,其中有2个变量,由冒号分隔,javascript,react-native,Javascript,React Native,我正在做一个react本地项目,我在互联网上找到了解决我问题的方法,但我不理解函数中的一行 componentDidUpdate(propsOld) { // line 1 const { fill } = this.props; // line 2 const { fill:fillOld } = propsOld; // line 3 if (fill !== fillOld) { // line 4 Animated.timing(this.anim

我正在做一个react本地项目,我在互联网上找到了解决我问题的方法,但我不理解函数中的一行

componentDidUpdate(propsOld) { // line 1
    const { fill } = this.props;  // line 2
    const { fill:fillOld } = propsOld; // line 3

    if (fill !== fillOld) { // line 4
      Animated.timing(this.anim, { toValue:fill, duration:2000 // line 5 }).start();
    }
}
我不明白的是第三行:

const{fill:fillOld}=propsell

我理解当一个变量或多个变量以逗号“,”分隔时,使用大括号


有谁能给我解释一下用冒号“:”分隔的意思吗?

使用:而不是a,是因为它为fill创建了一个别名。因此,fill现在可以引用为fillOld。所以,如果我想让比尔被称为弗雷德,我会这么做
{bill:fred}

使用a:而不是a,是因为它为fill创建了一个别名。因此,fill现在可以引用为fillOld。所以,如果我想让比尔被称为弗雷德,我会这么做
{bill:fred}

基本上就是在分解对象时重命名变量

如果您有这样一个对象:

const obj = {
    prop1: 'prop1',
    prop2: 'prop2',
    prop3: 'prop3',
}
const { prop2 } = obj;
const { prop4: prop4duplicated } = obj;
如果要获取变量
prop2
,可以这样做:

const obj = {
    prop1: 'prop1',
    prop2: 'prop2',
    prop3: 'prop3',
}
const { prop2 } = obj;
const { prop4: prop4duplicated } = obj;
但是如果你已经定义了同名的东西呢?这样一个块,其中定义了
prop4
,并且在解构时想要获取该变量

const prop4 = 'something';
const obj = {
    prop1: 'prop1',
    prop2: 'prop2',
    prop3: 'prop3',
    prop4: 'else'
}
您不能这样做:
const{prop4}=obj因为
prop4
已经存在,而且它是一个
const

所以基本上你可以这样重命名它:

const obj = {
    prop1: 'prop1',
    prop2: 'prop2',
    prop3: 'prop3',
}
const { prop2 } = obj;
const { prop4: prop4duplicated } = obj;
因此,基本上,在您的代码中:

const { fill } = this.props;
const { fill:fillOld } = propsOld;

它正在生成两个变量,
fill
fillOld
,这是因为
fill
已经存在,然后它被重命名为
fillOld
,基本上就是在分解对象结构时重命名变量

如果您有这样一个对象:

const obj = {
    prop1: 'prop1',
    prop2: 'prop2',
    prop3: 'prop3',
}
const { prop2 } = obj;
const { prop4: prop4duplicated } = obj;
如果要获取变量
prop2
,可以这样做:

const obj = {
    prop1: 'prop1',
    prop2: 'prop2',
    prop3: 'prop3',
}
const { prop2 } = obj;
const { prop4: prop4duplicated } = obj;
但是如果你已经定义了同名的东西呢?这样一个块,其中定义了
prop4
,并且在解构时想要获取该变量

const prop4 = 'something';
const obj = {
    prop1: 'prop1',
    prop2: 'prop2',
    prop3: 'prop3',
    prop4: 'else'
}
您不能这样做:
const{prop4}=obj因为
prop4
已经存在,而且它是一个
const

所以基本上你可以这样重命名它:

const obj = {
    prop1: 'prop1',
    prop2: 'prop2',
    prop3: 'prop3',
}
const { prop2 } = obj;
const { prop4: prop4duplicated } = obj;
因此,基本上,在您的代码中:

const { fill } = this.props;
const { fill:fillOld } = propsOld;
它正在生成两个变量,
fill
fillOld
,这是因为
fill
已经存在,然后它被重命名为
fillOld

可能重复的可能重复的可能重复的可能重复的