这是不明确的箭头功能
问题描述:
我试图访问该我的箭函数内里:这是不明确的箭头功能
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;
}
});
)};
但箭头函数内部它在马回调函数,这是不确定的!
我使用通天transpile代码:
myOutsideFunction: function myOutsideFunction() {
var _this = this;
myObject.getMyList(function (myList) {
_this.list = myList;
});
},
答
如果this
是undefined
箭头函数中,它是不确定的箭头之外也是如此。箭头功能只是捕捉周围范围的this
。
在这种情况下,您声明myOutsideFunction
作为对象字面值的方法,并且永远不会绑定它或执行其他任何可以将其与对象调用为this
的对象。
调试时,请记住,转换器可以重命名变量(并且必须重命名this
才能正确捕获)。即使原始值不是原始值,在没有包含重命名的源映射的控制台中使用原始名称也会显示undefined
。确保您在手表或控制台命令中使用了转录名称。
绑定'this',或将其存储在箭头函数范围之外的临时变量中。 – Jite
'this'的值取决于调用myOutsideFunction的方式。它怎么叫? –
@Jit使用箭头函数的全部想法是不必绑定这个! – Besat