以下为ChatGPT自动生成的解答,正确与否请自行判断。 也许你也可以从大家的发帖中找到想要的答案!
BFE.devAI解答 - JavaScript 小测验
58. inherit getter setter
输出结果为:
0
1
0
2
2
解释:
b.foo输出 0,因为B继承自A,没有自己的foogetter 和 setter,所以调用了A中的get foo()方法,此时val为 0。b.foo = 1调用了父类A中的set foo()方法,将val的值设为 1。b.foo输出 1,此时调用了父类A中的get foo()方法,返回val的当前值 1。c.foo输出 0,因为C继承自A,但是重载了foo的get方法返回val的值,因此val的当前值 为 1,但是C中的get foo()方法返回的是初始化时的值 0。c.foo = 2和b.foo = 1同理,此时val的值被设为 2。c.foo输出 2,因为此时调用了C中的get foo()方法。b.foo输出 2,因为b和c共享同一个val的值。