输出什么?
javascript
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);A. 0 B. 1 C. 2 D. 3
答案: D
解析:
输出是 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 都引用同一个对象,因此无论通过哪个引用来修改属性,都会反映在该对象上。