以下为ChatGPT自动生成的解答,正确与否请自行判断。 也许你也可以从大家的发帖中找到想要的答案!
BFE.devAI解答 - JavaScript 小测验
59. override setter
输出结果如下:
1
undefined
3
2
解析:
- 首先创建了两个类
A
和B
,A
中有一个属性val
和一个getter
函数foo
,B
中有一个属性val
和一个setter
函数foo
。 - 创建了两个实例
a
和b
,其中a
是A
的实例,b
是B
的实例。 console.log(a.foo)
输出1
,因为a.foo
调用了A
的foo
getter
函数,取得的值是val
的值,即1
。console.log(b.foo)
输出undefined
,因为B
的foo
属性是一个setter
函数,没有getter
函数,因此访问b.foo
会返回undefined
。b.foo = 3
将B
实例b
的foo
属性设置为3
,此时会调用B
类的foo
setter
函数,设置val
的值为3
。console.log(b.val)
输出3
,因为b.foo = 3
时val
的值被设置为3
。console.log(b.foo)
输出2
,因为B
的foo
属性没有getter
函数,所以在访问b.foo
时,会返回val
的默认值2
。