如何在Javascript(ES6)中正确定义子类构造函数?
我在为JS中的子类创建构造函数时遇到困难。类的构造函数工作得很好如何在Javascript(ES6)中正确定义子类构造函数?,javascript,class,this,subclass,Javascript,Class,This,Subclass,我在为JS中的子类创建构造函数时遇到困难。类的构造函数工作得很好 //defining base class State class State { constructor(){ this.someText = "someText"; } start(){ } update(){ } exit(){ } } //defining subclass preloadState class preload
//defining base class State
class State {
constructor(){
this.someText = "someText";
}
start(){
}
update(){
}
exit(){
}
}
//defining subclass preloadState
class preloadState extends State{
constructor(){
this.ball = "red";
}
start(){
console.log(this.ball);
}
}
var state = new preloadState;
state.start();
}
运行代码时,我得到一个错误
this.ball
未在preload state类中定义。为什么会这样?在子类的构造函数中使用this
之前,必须调用super
:
class preloadState extends State {
constructor() {
super();
this.ball = "red";
}
}
例如:
另一个选项是不重写构造函数:
class preloadState extends State {
start() {
this.ball = "red";
console.log(this.ball);
}
}
例如:
更深入:
preload state.start()
之后调用的所有方法中。他说:我不明白这个问题。假设我有一个prelostate对象:var state=new prelostate()
。现在假设我想在其他函数中使用state.start()
<代码>函数foo(state){state.start()}。那可能吗?我可以在另一个函数中传递类对象吗?