我已经下载了一个开源的js代码,开发人员经常以这种方式创建新的函数:
var log = msg => div.innerHTML += "<br>" + msg;
那么,下面有这个区别吗?
function log(msg){
div.innerHTML += "<br>" + msg;
}
答案 0 :(得分:0)
箭头功能和function foo() {}
功能之间存在一些差异。见https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions。
我可以想到一些问题:
function foo() {}
函数 definitions 被挂起,这意味着您可以在包含其定义的作用域中的任何位置调用此类函数。包含函数的变量不是这种情况,只有声明被提升this
,简单来说就意味着它们不会引入自己的this
变量。相反,它们只是关闭来自封闭范围的最近的this
变量arguments
local variable可在正文中使用所有这一切,考虑到上面提到的警告,你所展示的两个功能在大多数情况下应该表现相同。