1class Counter { 2 #number = 10 3 4 increment() { 5 this.#number++ 6 } 7 8 getNum() { 9 return this.#number 10 } 11} 12 13const counter = new Counter() 14counter.increment() 15 16console.log(counter.#number)
本题为“单选题”
参考答案:
正确选项:D:SyntaxError
在 ES2020 中,通过 #
我们可以给 class 添加私有变量。在 class 的外部我们无法获取该值。当我们尝试输出 counter.#number
,语法错误被抛出:我们无法在 class Counter
外部获取它!
有同学反馈,上面的代码在 Chrome console里,是可以打印出 11
这个值的,测试之后确实能看到,这一点在MDN上也有明确说明(只在Chrome的console控制台里,才能够访问到私有属性,这是为了开发调试的便利):
Note: Code run in the Chrome console can access private properties outside the class. This is a DevTools-only relaxation of the JavaScript syntax restriction.
最近更新时间:2024-09-09