【发布时间】:2021-09-13 21:06:16
【问题描述】:
大家好,我最近刚开始使用 javascript,我正在尝试学习类和对象,但我遇到了一个我无法通过的小问题,所以这是我的代码
class bubbleSorter{
constructor(/*params*/){
//some fields
}
#bubbleSorter = () =>{
//some code
}
getBubbleSorter = () =>{
this.#bubbleSorter();
}
}
let obj = new bubbleSorter(/*params*/);
console.log(obj.getBubbleSorter());
所以这是我的代码示例。 每当我尝试记录 getter 方法时,它并不能很好地工作,但是当我改为调用 bubbleSorter 方法时——假设我删除了 # 符号——它神奇地工作我不知道为什么会发生这种情况我尝试将 bubbleSorter 公开然后调用它在 getBubbleSorter 里面还是不行
【问题讨论】:
-
不要将箭头函数用作类方法。
-
@Barmar 怎么来的?
-
因为它们没有将
this传递给它们,所以它们保留了定义时的原始this。 -
get bubbleSorter() { /*somecode*/ } -
请发minimal reproducible example 并解释代码应该做什么。
标签: javascript class object methods getter