題目來源于前端面試寶典——選擇題欄
習題
class Counter {
// 二、count 屬性被包含在類 Counter 的建構式與 increment 方法,
constructor() {
this.count = 0
}
increment() {
this.count++
}
}
// 一、counterOne 成為 類 Counter 的一個實體
const counterOne = new Counter()
// 三、根據二的內容,現在呼叫方法兩次,因此 counterOne.count 為 2
counterOne.increment()
counterOne.increment()
/*
* 四、
* 創建一個新的變數 counterTwo 并將 counterOne 的參考地址賦值給它,
* 因為物件受參考地址的影響,剛剛創建了一個新的物件,其參考地址和 counterOne 的等價,
* 因此它們指向同一塊記憶體地址,任何對其的副作用都會影響 counterTwo,
*/
const counterTwo = counterOne
// 呼叫 counterTwo.increment() 將 count 的值設為 3
counterTwo.increment()
console.log(counterOne.count) //所以結果為3
總結
當創建一個實體后,經過一系列類方法定義的操作后,如果再創建一個新的變數,然后把實體賦值給該新變數,那么新變數呼叫的類方法,也會影響到原實體,因為參考地址一致,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/503417.html
標籤:其他
