首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >传递箭头函数与传递函数

传递箭头函数与传递函数
EN

Stack Overflow用户
提问于 2018-01-17 15:59:07
回答 6查看 5.5K关注 0票数 12

假设我有一个功能:

代码语言:javascript
运行
复制
handleChange = (e) => {
  this.setState({ [e.target.id]: e.target.value });
}

以下几点之间有什么区别:

1.

代码语言:javascript
运行
复制
<FormControl value={this.state.password} onChange={this.handleChange} />
代码语言:javascript
运行
复制
<FormControl value={this.state.password} onChange={(e) => this.handleChange(e)} />
EN

Stack Overflow用户

发布于 2018-05-17 08:21:44

假设您的事件处理程序是这样在类中编写的

代码语言:javascript
运行
复制
handleChange = (e) => {
  this.setState({ [e.target.id]: e.target.value });
}

让我们来看你提到的第一个例子。

代码语言:javascript
运行
复制
<FormControl value={this.state.password} onChange={this.handleChange} />

在这里,对于每次更改,您都要传递handleChange函数的内存引用,并将事件对象传递给它。

第二种方法。

代码语言:javascript
运行
复制
<FormControl value={this.state.password} onChange={(e) => this.handleChange(e)} />

在这里,您将创建一个新的匿名函数,该函数每次发生事件更改时都将事件对象作为参数。这大大增加了垃圾收集,如果您有大型列表items.Adding,则箭头函数在本例中是多余的,因为上下文已经被绑定,这是因为您最初编写handleChange方法的方式。作为perf提示,如果在类中使用箭头函数,则对事件处理程序使用选项1。

票数 5
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48305194

复制
相关文章

相似问题

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