Javascript 将变量设置为原始类方法时,未定义包含另一类方法的类方法

Javascript 将变量设置为原始类方法时,未定义包含另一类方法的类方法,javascript,function,class,Javascript,Function,Class,为什么下面的代码会抛出错误,以及我将如何着手尝试修复 class-Foo{ bar(){ 控制台日志(“bar”); } 嘶嘶{ this.bar();//类型错误:这是未定义的 } } 设foo=newfoo(); 让buzz=foo.fizz; 嗡嗡声(); 使用箭头功能: class-Foo{ bar(){ 控制台日志(“bar”); } 起泡=()=>{ this.bar();//类型错误:这是未定义的 } } 设foo=newfoo(); 让buzz=foo.fizz; 嗡嗡声()将函

为什么下面的代码会抛出错误,以及我将如何着手尝试修复

class-Foo{
bar(){
控制台日志(“bar”);
}
嘶嘶{
this.bar();//类型错误:这是未定义的
}
}
设foo=newfoo();
让buzz=foo.fizz;
嗡嗡声();
使用箭头功能:
class-Foo{
bar(){
控制台日志(“bar”);
}
起泡=()=>{
this.bar();//类型错误:这是未定义的
}
}
设foo=newfoo();
让buzz=foo.fizz;

嗡嗡声()
将函数分配给
buzz
并将其称为plain
buzz()
@deceze,这样会丢失上下文。我不明白为什么会丢失上下文,另外,我该如何调用
buzz())
如果不抛出错误,请查阅副本。这需要非常现代的浏览器才能工作,因为它仅在ES9@volt,你是说,类和箭头函数的概念是从es6,2015Correct开始的,但这不是你在这里使用的。你的代码不仅仅依赖于类和箭头函数。OP会问为什么this关键字在他不直接调用函数时抛出错误,这与现代浏览器无关?@volt浏览器对该功能的支持是什么样的?