Javascript node.js中的箭头函数上下文

Javascript node.js中的箭头函数上下文,javascript,node.js,ecmascript-6,arrow-functions,Javascript,Node.js,Ecmascript 6,Arrow Functions,使用MDN文档中箭头函数的以下示例,位于 当我将该代码复制/粘贴到node.js 0.12node--harmony时,this.age++行似乎不是指Person上下文,而是指setInterval上下文。将console.log(this)添加到回调中似乎证实了这一点 当我使用其他es6->es5 Transpiler时,它总是按预期工作。这是node.js中的错误吗?我错过什么了吗 编辑:也许这就是原因 区别在于,他们讨论的是Chrome,而这个问题是关于Node.js的。据了解,尽管他们

使用MDN文档中箭头函数的以下示例,位于

当我将该代码复制/粘贴到node.js 0.12
node--harmony
时,
this.age++行似乎不是指
Person
上下文,而是指
setInterval
上下文。将
console.log(this)
添加到回调中似乎证实了这一点

当我使用其他es6->es5 Transpiler时,它总是按预期工作。这是node.js中的错误吗?我错过什么了吗

编辑:也许这就是原因


区别在于,他们讨论的是Chrome,而这个问题是关于Node.js的。据了解,尽管他们都使用V8,但他们有不同级别的ES6支持

原因似乎是V8尚未更新以支持词法
这一

看起来您已经找到了原因。这个问题是在不到一个月前提出的。正如@JLRishe所指出的,如果你已经找到了解决方案,你应该发布这个问题的答案并接受它。刚刚发布了答案,但我希望在我这么做之前其他人能确认。
function Person(){
  this.age = 0;

  setInterval(() => {
    this.age++; // |this| properly refers to the person object
  }, 1000);
}

var p = new Person();