Object.is()の挙動
Mijinko_SD.icon
https://gyazo.com/1002f101fbcf7a552b5986e4d874cffe
どういうことやねん
中身も参照も同じだと思うんだけど、Object.is()の結果は常にfalse
一番上の階層の配列の参照先が違うから常にfalseを吐いてる?
https://gyazo.com/874e3c8bc29da16df15d7725017a499a
配列の参照先が違うのはおそらく確か
Array.prototype.slice()はシャローコピーだったはずだし、スプレッド構文か[]の囲み自体が参照先を変えている?
内部仕様にそこまで詳しくないので、誰か教えて欲しいです(自己解決)
配列リテラルでのスプレッド構文 - スプレッド構文 - JavaScript | MDN
↑(スプレッド構文のページ)に「配列を複製する」という項目があった
コピーは 1 段階の深さで行われます。そのため、次の例のような多次元配列のようなオブジェクトをコピーする場合には適さないでしょう。
(Object.assign() についても同じことが言えます。)
1深度という条件付きではあるけれど、Object.is()を騙す程度なら十分かな
今思ったけどArray.prototype.slice()は要らなかったな