我只是在研究docs中的高级组件,但发现下面的代码:
return class extends React.Component {
// no name ^ ^ here
这是错字吗?如果没有,您能否指出类定义在这里的工作原理?
答案 0 :(得分:1)
它不需要名称,因为它是由其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
};