首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在箭头函数中调用箭头函数

在箭头函数中调用箭头函数
EN

Stack Overflow用户
提问于 2018-05-31 12:41:35
回答 4查看 383关注 0票数 1

我的反应项目中的箭头函数有问题。

这门课看起来如下:

代码语言:javascript
复制
f1() { 
// sth...
}

f2 = (a) => () => { /* sth */ }
f3 = (b) => () => {
   this.f1();
   this.f2();
}

为什么没有调用函数f2?F1是可以的,但是f2似乎对上下文有问题吗?如何解决这个问题?我需要在它工作的另一个地方调用相同的函数(F2) (onClick事件)。我想这是一个自动绑定的问题,但我不知道如何解决。请帮帮忙。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-05-31 12:46:53

您的函数f2确实正在调用,但返回另一个函数。

代码语言:javascript
复制
f2 = (a) => () => { /* sth */ }

这相当于:

代码语言:javascript
复制
f2 = (a) => {
    return () => { /* sth */ }
}

因此,要调用/* sth */,您必须使用以下命令:

代码语言:javascript
复制
f2()()

因为f2()返回第二个函数(内部函数)。

票数 7
EN

Stack Overflow用户

发布于 2018-05-31 12:46:30

函数f3是一个返回另一个函数的函数,为了调用它,您需要编写如下

代码语言:javascript
复制
f3 = (b) => () => {
   this.f1();
   this.f2();
}

this.f3()()
票数 2
EN

Stack Overflow用户

发布于 2018-05-31 12:48:19

像这样试试。

代码语言:javascript
复制
  componentWillMount() {
    this.f3(1);
  }

  f1() { 
    console.log('calling f1');
  }

  f2 = (a) => { 
    console.log('calling f2 ' + a);
  }

  f3 = (b) => {
   this.f1();
   this.f2('text');
  }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50624599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档