Node.js子类无法获取父类更新后的值问题排查
问题分析与解决方法
你遇到的问题核心是:first和second是两个完全独立的实例。调用first.updateValue()只会修改first这个实例自身的value属性,不会影响second实例的value——因为每个类实例都会拥有自己独立的属性副本,继承只是让子类实例继承父类的属性定义和方法,不是共享同一个实例的属性。
解决方法1:在子类实例上调用更新方法
如果你想让second实例获取更新后的值,直接在second实例上调用updateValue()即可:
let second = new Second(); second.updateValue(); // 先执行更新操作 console.log(second.getUpdatedValue()); // 输出4
解决方法2:使用静态属性实现值共享
如果需要让所有First和Second的实例共享同一个value值,可以把value定义为类的静态属性:
class First { static value = 2; // 静态属性属于类本身,所有实例共享 updateValue() { First.value = 4; return First.value; } } class Second extends First { getUpdatedValue() { return First.value; } } let first = new First(); first.updateValue(); // 通过实例更新静态属性 let second = new Second(); console.log(second.getUpdatedValue()); // 输出4
内容的提问来源于stack exchange,提问作者armin
相关产品推荐
相关产品推荐

