在类中定义的箭头函数中“this”的值是多少

时间:2018-02-22 07:05:28

标签: javascript arrow-functions

Newbish问题,但我想知道“this”的值对于在javascript类中定义的箭头函数是什么。

它是对包含它的类的引用吗?

例如:

class abc {
    testFunction = () => {
        //What is the value of 'this' here?
    }
}

尝试更好地理解这一点,以了解函数如何传递给ReactJS中的组件。

2 个答案:

答案 0 :(得分:1)

您已标记了您的问题“ES6”(也就是说,ES2015)等,但请注意class fields(您使用的语法)不在ES2015 - 或ES2016或ES2017中,并且不会在ES2018中。尽管通过翻译在React社区广泛使用,它仍然是第3阶段提案。

使用该提议,字段初始值设定项的this与构造函数中的相同:对新构造的实例的引用。该代码相当于:

class abc {
    constructor() {
        this.testFunction = () => {
            // ...
        };
    }
}

答案 1 :(得分:0)

在这种情况下,this关键字只是abc的一个实例。例如:

var alphabet = new abc();
alphabet.testFunction();

class abc {
testFunction = () => {
    this.x = 30; // is the same as:
alphabet.x = 30;
}

希望这有帮助!有关此关键字的详细信息,请转到https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this