class PathController {
constructor(){
}
getMainPage(){
alert("getMainPage");
}
setPushState(){
alert("setPushState");
}
}
class MainMenu extends PathController {
constructor (){
// call my PathController here
super();
getMainPage();
setPushState();
}
}
let aMainMenu = new MainMenu();
我的意图是在我的MainMenu构造函数中调用我的getMainPage和setPushState,我厌倦了this.getMainPage和this.setPushState,它也不能正常工作。谁能告诉我怎么称呼它?
答案 0 :(得分:1)
你的超级是你的“这个”,因为我们目前在构造函数中。以下是它的外观:
class PathController {
constructor(){
}
getMainPage(){
alert("getMainPage");
}
setPushState(){
alert("setPushState");
}
}
class MainMenu extends PathController {
constructor (){
// call my PathController here
super();
super.getMainPage();
super.setPushState();
}
}
let aMainMenu = new MainMenu();
但是,一旦你在构造函数之外,那么你将使用“this.getMainPage();”
答案 1 :(得分:0)
一种方法是将属性名称传递给super()
,该PathController
调用class PathController {
constructor(fromMainMenu, ...props) {
if (fromMainMenu) {
for (let fn of props) {
this[fn]()
}
}
}
getMainPage(){
alert("getMainPage");
}
setPushState(){
alert("setPushState");
}
}
class MainMenu extends PathController {
constructor () {
// call my PathController here
super(true, "getMainPage", "setPushState");
}
}
let aMainMenu = new MainMenu();
父构造函数的函数
class SiteController extends Controller {
public function init() {
$this->layout = 'admin';
}
....