分割代入の挙動がよくわかりません

「配列の要素は順番で、オブジェクトの要素はキーで指定する」という原則を意識しましょう。
2020年7月8日
ユーザー

こんにちは。
今回の分割代入についてですが、

const {x, r, ...others} = point;

の、x, r, ...others への割り当てですが、
以前、配列の分割代入の際は、

const scores = [100, 90, 80, 70];

と言った配列があった場合、

const [a, b, c, d] = scores;

とすれば、順番に aには100、bには90、cには80、dには70、と言った具合に割り当てられ、

const [a, b, ...others] = scores;

とした場合、aには100、bには90、othersには80,70と割り当てられると理解したのですが、

今回もその場合のようになるとするならば、

const othersProps = {
 r: 4,
 color: "red",
};

const point = {
 x: 100,
 y: 180,
 ...othersProps,
};

const {x, r, ...others} = point;

のxには100、rにはyの値の180が入り、othersの中にその他のr:40とcolor: "red"が入らないのですか?

[]や{}の中の名前は好きなようにつけていいものだと思っておりましたが、x,rのようにすでに定数?として定義されているものはその名前で受け取るためにこうなるのでしょうか?

この辺は苦手分野なので質問しようにも言葉を間違えていたり、とんちんかんなこと言ってるかもしれませんが、よろしくお願いします。

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?

このレッスンの質問と回答(10)