首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这两个函数有什么区别吗?

这两个函数有什么区别吗?
EN

Stack Overflow用户
提问于 2016-10-29 05:54:11
回答 1查看 52关注 0票数 1

我下载了一个开源的js代码,开发人员经常以这种方式创建新功能:

代码语言:javascript
复制
var log = msg => div.innerHTML += "<br>" + msg;

那么,下面这个有什么区别吗?

代码语言:javascript
复制
function log(msg){
   div.innerHTML += "<br>" + msg;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-29 06:02:04

箭头函数与function foo() {}函数有一定的区别。见functions

我能从头顶上想出几个:

  • function foo() {}函数定义被悬挂,这意味着您可以在包含其定义的作用域中的任何地方调用这样的函数。对于包含函数的变量,情况并非如此,因为只有声明才会被挂起。
  • 箭头函数在词汇上绑定this,这在简单的单词中意味着它们不引入自己的this变量。相反,它们只是从一个封闭的作用域关闭最近的this变量。
  • 箭头函数中没有可用的 local variable在体内使用。

尽管如此,考虑到上面提到的警告,在大多数情况下,您展示的两个函数的行为应该是相同的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40316471

复制
相关文章

相似问题

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