Javascript Arrow函数是否具有类似Groovy闭包的委托属性

Javascript Arrow函数是否具有类似Groovy闭包的委托属性,javascript,groovy,functional-programming,ecmascript-6,Javascript,Groovy,Functional Programming,Ecmascript 6,使用groovy,您可以运行closure,如下所示: instanceB.methodB({ methodA(3); methodA(3); }); //---- methodB definition class B{ def methodB(Closure c){ c.delegate=new A(); //!!!---The question is about this "delegate"

使用groovy,您可以运行closure,如下所示:

  instanceB.methodB({
          methodA(3);
          methodA(3);
  }); 
  //---- methodB definition 
  class B{
       def methodB(Closure c){
             c.delegate=new A(); //!!!---The question is about this "delegate" in JS
             c.call();
       }

  }
正如您可能注意到的,我们在闭包内直接调用
methodA
,而不调用
this
this.methodA()
)。 这是因为此指令
c.delegate=new A()
:因此,可以在那里调用
new A()
的所有方法

我的问题: 如何使其与使用箭头函数的Javascript一起工作:ES6或ES7

箭头函数是否具有类似于委托的功能

伪代码:
不,箭头函数没有这样的功能,也没有任何其他功能

范围在JS中是由词汇决定的,也就是说,它取决于您在何处声明函数,并且您不能从外部注入任何内容或修改它


您的最佳选择可能是,尽管您必须将它放在(箭头)函数中,而不是放在调用站点,或者
eval

否,箭头函数没有这样的功能,也没有任何其他功能

范围在JS中是由词汇决定的,也就是说,它取决于您在何处声明函数,并且您不能从外部注入任何内容或修改它


您的最佳选择可能是,尽管您必须将它放在(箭头)函数中,而不是放在调用站点,或者
eval

是否有任何更新?Groovy和JSI都不知道这与arrow函数有什么关系。JS中没有针对它们的特殊范围。您可能希望查看任何更新?Groovy和JSI都不知道这与arrow函数有什么关系。在JS中没有特殊的作用域。您可能想看看
instanceB.methodB(()=>{
     methodA(3); 
     methodA(4);
});
class B{
     methodB(arrow){
         arrow.delegate=new A(); // What's the right way, if any ?
         arrow.call();  
     }

}