Javascript 这是未定义的内部箭头函数

Javascript 这是未定义的内部箭头函数,javascript,this,undefined,arrow-functions,Javascript,This,Undefined,Arrow Functions,我正在尝试在我的箭头功能中访问此项: import myObject from '../myObjectPath'; export const myClass = Fluxxor.createStore({ initialize() { this.list = []; this.id = null; }, myOutsideFunction(variable1) { // here this in NOT undefined

我正在尝试在我的箭头功能中访问此项:

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;
        } 
    });
)};
但是在ma回调函数中的箭头函数是未定义的

我正在使用babel传输代码:

myOutsideFunction: function myOutsideFunction() {
    var _this = this;
    myObject.getMyList(function (myList) {
        _this.list = myList;
    });
},

如果
在箭头函数中是
未定义的
,则在箭头之外也是未定义的。箭头函数只需捕获周围范围的

在本例中,您将
myOutsideFunction
声明为对象文本上的一个方法,并且从不将其绑定或执行任何其他操作,以
this
的形式使用对象调用它


调试时,请记住Transpiler可以重命名变量(并且必须重命名
,才能正确捕获)。在控制台中使用不包含重命名的sourcemaps的原始名称将显示未定义的
,即使原始值不是。确保在手表或控制台命令中使用传输名称。

绑定
,或将其存储在箭头函数范围外的临时变量中。
的值取决于调用
myOutsideFunction
的方式。它是如何命名的?@Jite使用arrow函数的整个想法是不必绑定它!@Felix Kling myOutsideFunction是从类中的另一个函数调用的。但是这不重要,因为myOutside函数有这个。@Jite Np:))虽然它不适用于我:Dstrange,因为它是在函数调用之前写的。
//在这里它不是未定义的
,所以
这个
不应该在箭头中未定义function@oliv37严格地说,那是不可能的。箭头函数是一种语言功能,始终会收到与此相同的
。我不知道有任何运行时在这方面有bug(因为它是arrow函数的基础)。这就是我所想的!!这应该是不可能的!但我已经测试了好几次,我得到了未定义的内部箭头函数,但它不是未定义的权利之前调用it@Besat您是否通过transpiler或类似的东西(babel、webpack等)运行此代码?如果是的话,你能包括输出吗?编译器可能正在更改某些变量名,使其在控制台中显示为未定义,但这只是因为您引用的是原始(传输前)名称。@Besat babel将不得不重命名
,因为保留了实名,通常使用
\u this