class Counter {
constructor() {
this.count = 0;
}
increment() {
this.count++;
}
}
const counterOne = new Counter();
counterOne.increment();
counterOne.increment();
const counterTwo = counterOne;
counterTwo.increment();
console.log(counterOne.count);
输出是 3
。
在这段代码中,我们定义了一个名为 Counter
的类,它具有一个 count
属性和一个 increment
方法。当我们创建一个 counterOne
实例时,它的 count
属性被初始化为 0
。
然后,我们通过调用 counterOne.increment()
两次来增加 counterOne
对象的 count
值,使其变为 2
。
接下来,我们将 counterOne
赋值给 counterTwo
,这实际上是将对同一个对象的引用赋值给了另一个变量。因此,counterTwo
和 counterOne
引用相同的对象。
然后,我们调用 counterTwo.increment()
,这会导致 count
属性再次增加 1
,所以最终 counterOne.count
的值为 3
。
由于 counterOne
和 counterTwo
都引用同一个对象,因此无论通过哪个引用来修改属性,都会反映在该对象上。