2017-11-17 4 views
1

は、それは私がオブジェクトを更新するスプレッド演算子と定数を使用することができることを指摘された:constは、スプレッド演算子を介してプロパティを更新するのはなぜですか?コードレビューの際

const props = { 
 
    hairColor: 'brown', 
 
}; 
 

 
const hairColor = 'red'; 
 
const newProps = { ...props, hairColor}; 
 

 
console.log(newProps); // -> hairColor now equals 'red'

質問は、この作業を行いますか?

私は、オブジェクトを渡すと、どのように機能するかを実際に理解:

const newProps = { ...props, { hairColor: 'red' }}; 

をしかし、どのように、それは「赤」の値でhairColorを更新するために知っているのですか?クイックテストは変数名を使用していることを示していますが、どうですか?

const props = { 
 
    hairColor: 'brown', 
 
}; 
 

 
const colorOfHair = 'red'; 
 
const newProps = { ...props, colorOfHair}; 
 

 
// -> hairColor still equals 'brown' 
 
// with new property 'colorOfHair' 
 
console.log(newProps);

+0

これは、HTTPS([速記プロパティ名]と呼ばれている:

const newProps = { ...props, hairColor: hairColor}; 

のためにこれはあなたが書いた場合、同じことが起こる、拡散演算子とは無関係ですので

const newProps = { ...props, hairColor}; 

が短いです://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer#New_notations_in_ECMAScript_2015)。 –

答えて

2

これはES6 shorthand property namesです。オブジェクトにnameと書くと、name: nameのショートカットになります。

const newProps = { prop1: 1, prop2: 2, hairColor }; 
関連する問題