以下为ChatGPT自动生成的解答,正确与否请自行判断。 也许你也可以从大家的发帖中找到想要的答案!
BFE.devAI解答 - JavaScript 小测验
58. inherit getter setter
输出结果为:
0
1
0
2
2
解释:
b.foo
输出 0,因为B
继承自A
,没有自己的foo
getter 和 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
的值。