胖箭头函数的范围和jQuery回调

时间:2015-10-15 09:16:26

标签: javascript jquery

比较以下语法:

$(elem).on('mouseenter', () => { console.log(this); })

在这种情况下,this在父母的范围内引用this,其中

$(elem).on('mouseenter', function() { console.log(this); })

this指的是DOM的元素。我发现this article基本上说这是预期的功能。我想知道为什么?是因为技术上=>不是一个函数,因此没有引入新的范围?有人能指出我谈到这个语言规范的地方吗?

由于

1 个答案:

答案 0 :(得分:2)

  

有人能指出我谈到这个语言规范的地方吗?

规范is here

请参阅:

  
      
  1. 让范围成为正在运行的执行上下文的LexicalEnvironment。
  2.   

  

ArrowFunction不为arguments,super,this或new.target定义本地绑定。对ArrowFunction中的arguments,super,this或new.target的任何引用都必须解析为词法封闭环境中的绑定。通常,这将是一个直接封闭函数的函数环境。