參考文章: https://juejin.im/post/6846687584710557710
新看到的方法:Object.is(val1,val2);
ES6中用來判斷兩個值是否相同,
感覺可以用來做其他測試(數據指向 => 修正為 記憶體指向位址問題
),以下~
在vue中很多東西都是透過綁定的方式,這樣存取也方便
不過像是遇到要重複使用到綁定的數據並改變時,就會出現...這種情況
data() {
return {
obA: [0, 1, 2, 3, 4, 5],
obB: []
};
},
...
this.obB = this.obA;
this.obB.push(999);
//this.obA 也被改變了~
console.log(this.obA) // [0, 1, 2, 3, 4, 5,999];
console.log(this.obB) //[0, 1, 2, 3, 4, 5,999];
console.log("判斷指向結果 = " + Object.is(this.obB, this.obA)) //true;
對比
ES6擴充套件運算子實現陣列的深層拷貝
this.obB = [...this.obA];
this.obB.push(999);
//this.obA 這次就不會被改變
console.log(this.obA) // [0, 1, 2, 3, 4, 5];
console.log(this.obB) //[0, 1, 2, 3, 4, 5,999];
console.log("判斷指向結果 = " + Object.is(this.obB, this.obA)) //false;
實測Object.is() 好像除了值得比較,也可以做(數據指向 => 修正為 記憶體指向位址
)判斷
如果內容有誤再提出修正指導~謝謝~
確認兩邊的記憶體指向位址相不相同吧?
哈哈~謝謝 ~好像您這麼講才是對的
當時不知道該怎麼描述 哈哈 已修正