【JS每日刷题】类的赋值引用操作1

  • 【JS每日刷题】类的赋值引用操作1已关闭评论
  • 149 次浏览
  • A+
所属分类:Web前端
摘要

题目来源于前端面试宝典——选择题栏当创建一个实例后,经过一系列类方法定义的操作后,如果再创建一个新的变量,然后把实例赋值给该新变量,那么新变量调用的类方法,也会影响到原实例,因为引用地址一致。

题目来源于前端面试宝典——选择题栏

习题

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 

总结

当创建一个实例后,经过一系列类方法定义的操作后,如果再创建一个新的变量,然后把实例赋值给该新变量,那么新变量调用的类方法,也会影响到原实例,因为引用地址一致。