Javascript 为什么React组件构造函数中的console.log(super)抛出错误?
我想在我的Javascript 为什么React组件构造函数中的console.log(super)抛出错误?,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我想在我的InheritComponentconstructor方法中控制台super。 但在chrome控制台中,它抛出了一个错误。为什么? 类BaseComponent扩展了React.Component{ 静态defaultProps={ 标题:“通过示例学习反应” } 建造师(道具){ 控制台日志(道具); 超级(道具); } 标题(标题){ document.title=title | | this.props.title; 返回文件.title; } } 类继承组件扩展了BaseC
InheritComponent
constructor
方法中控制台super
。
但在chrome控制台中,它抛出了一个错误。为什么?
类BaseComponent扩展了React.Component{
静态defaultProps={
标题:“通过示例学习反应”
}
建造师(道具){
控制台日志(道具);
超级(道具);
}
标题(标题){
document.title=title | | this.props.title;
返回文件.title;
}
}
类继承组件扩展了BaseComponent{
状态={
标题:“”
};
建造师(道具){
超级(道具);
//这里抛出一个错误。为什么?我想console.log`super`
console.log(超级);
}
componentDidMount(){
const title=this.setTitle('组件继承')
this.setState({title});
}
render(){
返回
我继承BaseComponent
当前标题为{this.state.title}
}
}
ReactDOM.render(
,
文件正文
)
原因很简单:
super
是一个关键字,不是函数,也不是任何变量。你不能像记录var
或new
关键字一样记录super
如果要记录父级的构造函数,可以尝试:
console.log(super.constructor);
实际上,super()
只是super.constructor()
的缩写
请参阅更多信息:super
是一个关键字,不能像变量一样使用它。下面列出了使用super的唯一方法:
super([arguments]);//调用父构造函数
super.functionOnParent([arguments])
如果要打印父类,请使用
console.log(super.constructor)
。我想你在调用super之前不能添加任何内容,你能删除你的console.log语句并再试一次吗?@HarkiratSaluja删除console.log语句可以。但是我想控制台super
。而且,我的console.log语句在super(props)之后
statement谢谢。我看到了医生。