我试图在我的箭头函数中访问它:
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;
}
});
)};
但是在回调函数中的箭头函数内部 this 是未定义的!
我正在使用 babel 来转译代码:
myOutsideFunction: function myOutsideFunction() {
var _this = this;
myObject.getMyList(function (myList) {
_this.list = myList;
});
},
If this
is undefined
在箭头函数内,它在箭头之外也是未定义的。箭头函数只是捕获this
的周围范围。
在这种情况下,您声明myOutsideFunction
作为对象字面量上的方法,并且永远不会绑定它或执行任何其他会与对象一起调用它的操作this
.
调试时,请记住转译器可以重命名变量(并且必须重命名this
以便其正确捕获)。在控制台中使用原始名称而不包含重命名的源映射将向您显示undefined
即使原始值不是。确保在监视或控制台命令中使用转换后的名称。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)