箭头函数不同于传统 JS 中的函数,箭头函数并没有属于自己的 this,他所谓的 this 是捕获其所在上下文的 this 值,作为自己的 this 值,并且由于没有属于自己的 this,所以是不会被 new 调用的,这个所谓的 this 也不会被改变。可以用 Babel 理解一下箭头函数:
// ES6const obj = {getArrow() {return () => {console.log(this === obj);};},
};// ES5,由Babel转义var obj = {getArrow: function getArrow() {var _this = this;return () => {console.log(this === obj);};},
};