在原型扩展内使用箭头功能时,出现了我看到的意外行为。
function ES6Example(){}
ES6Example.prototype.foo = function(bar){
return ((baz) => {
console.log(this)
this.bar = baz
})(bar)
}
var es6Example = new ES6Example
es6Example.foo('qux')
console.info(es6Example.bar)
上面的代码导致全局上下文被打印出来,并且
es6Example.bar
未定义。这是旧的行为。根据我在MDN中看到的文档,我希望它可以绑定到实例。我正在使用和谐标志使用Node v0.11.15运行以上代码。请注意以下工作:function ES6Example(){
this.foo = baz => {
this.bar = baz
}
}
最佳答案
V8的实现仍不完整,仍然没有词法this
。
这就是为什么在Chrome node.js和io.js中,必须设置一个特殊的“ harmony”参数来使用它:它不适合常规使用。