关键是,对于我的特殊情况,这个常数是
new Map()
,施工期间将咨询结果:
class Cmd0 {
constructor(name, arg1, arg2 = null) {
this.name = name;
this.arg1 = arg1;
this.arg2 = arg2;
}
. . .
}
class Cmd extends Cmd0 {
constructor(name, arg1, arg2 = null) {
myMap = Somehow.getMyMap() // defined in sub-classes
if (!myMap.has(name)) { super(null, null, null); return } // fail the constructor
super(name, arg1, arg2)
}
}
class SubCmd1 extends Cmd {
Usage() {
if (this.name) return null
else return "cmd sub1 bla bla bla"
}
}
class SubCmd2 extends Cmd {
Usage() {
if (this.name) return null
else return "cmd sub2 bla bla bla"
}
}
SubCmd1
SubCmd2
getMyMap()
this
可以访问。
这个
getMyMap() {
return new Map()
.set("name1", arg11, arg12)
.set("name2", arg21, arg22)
}
有没有可能以某种方式使它起作用?
https://jsbin.com/xubijosuro/edit?js,console,output
注:以下是我如何使用
亚CMD2
等:
const cli = new CliCaseA(name, argsObj)
const usage = cli.Usage()
if (usage) { console.log(`Usage:\n\n${usage}`) process.exit() }