我想在我的箭头功能中访问它:
import myObject from '../myObjectPath';
export const myClass = Fluxxor.createStore({
initialize() {
this.list = [];
this.id = null;
},
myOutsideFunction(variable1) {
// here this in NOT undefined
myObject.getMyList(this.id, (myList) => {
// here this in undefined
this.list = myList;
}
});
)};
但是在回调函数中的箭头函数中这是未定义的!!
我正在使用babel来传输代码:
myOutsideFunction: function myOutsideFunction() {
var _this = this;
myObject.getMyList(function (myList) {
_this.list = myList;
});
},
答案 0 :(得分:4)
如果箭头函数中this
为undefined
,则箭头外部也未定义。箭头功能只是捕获周围范围的this
。
在这种情况下,您将myOutsideFunction
声明为对象文字上的方法,并且永远不会将其绑定或执行任何其他可以将对象称为this
的方法。
调试时,请记住,转换器可以重命名变量(并且必须重命名this
才能正确捕获)。在没有包含重命名的源映射的控制台中使用原始名称将显示undefined
,即使原始值不是。确保在watch或console命令中使用已转换的名称。