标签:count counterOne Counter JS counterTwo 实例 increment 刷题 赋值
题目来源于前端面试宝典——选择题栏
习题
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
总结
当创建一个实例后,经过一系列类方法定义的操作后,如果再创建一个新的变量,然后把实例赋值给该新变量,那么新变量调用的类方法,也会影响到原实例,因为引用地址一致。
标签:count,counterOne,Counter,JS,counterTwo,实例,increment,刷题,赋值 来源: https://www.cnblogs.com/PaturNax/p/16648128.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。