2016-10-29 47 views
0

我已经下载了一个开源的js代码,其中开发人员常常以这种方式创造新的功能:这两个功能有什么不同吗?

var log = msg => div.innerHTML += "<br>" + msg; 

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

function log(msg){ 
    div.innerHTML += "<br>" + msg; 
} 
+1

箭头函数和'function foo(){}'函数之间有一些区别。见https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions –

+1

检查这个帖子http://stackoverflow.com/questions/22939130/when-should-i-use-arrow-功能合的ECMAScript -6- –

回答

0

箭头函数和function foo() {}函数之间有一些差异。见https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions

一些我能想到的把我的头顶部:

  • function foo() {}功能定义高挂,这意味着你可以在包含其定义范围内的任何地方调用这个函数。这是不包含的功能,其中仅声明高挂
  • 箭头功能结合this词汇,这在简单的话意味着他们没有介绍自己的this变量变量的情况下。相反,他们只是关闭了从封闭范围最近this变量
  • 箭功能没有可供使用arguments local variable体内

所有这一切说,你表现出应该表现相同的两个功能大多数情况下,鉴于上面提到的警告。