类定义如何工作?

时间:2018-08-22 11:42:33

标签: javascript reactjs

我只是在研究docs中的高级组件,但发现下面的代码:

return class extends React.Component {
// no name ^ ^ here

这是错字吗?如果没有,您能否指出类定义在这里的工作原理?

3 个答案:

答案 0 :(得分:1)

这是class expression

它不需要名称,因为它是由其LHS上的代码(即return)处理的。

答案 1 :(得分:0)

JavaScript中的类可以像函数一样是匿名的。

参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/class

答案 2 :(得分:0)

否,它不是错字,它称为class expression。类表达式是在ECMAScript 2015中定义类的一种方法。类似于函数表达式,可以命名或不命名类表达式。如果已命名,则该类的名称仅对于类主体而言是本地的。 JavaScript类使用基于原型的继承。定义类表达式的签名是:

var MyClass = class [className] [extends] {
  // class body
};