导入后将参数传递给 class 构造函数
Pass arguments to the class constructor after import
这是我的parent.class.js
class ParentClass {
constructor() {
}
}
module.exports = { ParentClass };
child.class.js
const { ParentClass } = require('./parent.class');
class ChildClass extends ParentClass {
constructor(index) {
super();
this.index = index;
}
showIndex() {
console.log(this.index)
}
}
module.exports = { ChildClass };
和 index.js 我使用的是 child class
const ChildClass = require('./child.class');
ChildClass(1).showIndex(); // This obviously is not working
注意:这只是一个示例。在实际项目中我无法使用 ES6 模块 import
我的问题是如何将参数传递给 index.js 中的 child class 实例?
如果是 ES6,我可以这样做:
import ChildClass from './child.class.js'
const ChildClass = new ChildClass(1)
ChildClass.showIndex(); // outputs 1 ...I guess??
如何将参数传递给 childclass?
问题是
module.exports = { ChildClass };
和
const ChildClass = require('./child.class');
您正在导出一个 对象 ,其中有一个 属性 的 ChildClass
,然后您正在导入整个 object 并尝试调用它。但是对象是不可调用的;你指的不是 ChildClass
class.
就像你用
解构了ParentClass
一样
const { ParentClass } = require('./parent.class');
要么解构ChildClass
:
const { ChildClass } = require('./child.class');
或将ChildClass
分配给module.exports
:
module.exports = ChildClass;
然后您将能够创建 ChildClass
的实例并调用该实例的方法:
const child = new ChildClass(1);
child.showIndex();
这是我的parent.class.js
class ParentClass {
constructor() {
}
}
module.exports = { ParentClass };
child.class.js
const { ParentClass } = require('./parent.class');
class ChildClass extends ParentClass {
constructor(index) {
super();
this.index = index;
}
showIndex() {
console.log(this.index)
}
}
module.exports = { ChildClass };
和 index.js 我使用的是 child class
const ChildClass = require('./child.class');
ChildClass(1).showIndex(); // This obviously is not working
注意:这只是一个示例。在实际项目中我无法使用 ES6 模块 import
我的问题是如何将参数传递给 index.js 中的 child class 实例?
如果是 ES6,我可以这样做:
import ChildClass from './child.class.js'
const ChildClass = new ChildClass(1)
ChildClass.showIndex(); // outputs 1 ...I guess??
如何将参数传递给 childclass?
问题是
module.exports = { ChildClass };
和
const ChildClass = require('./child.class');
您正在导出一个 对象 ,其中有一个 属性 的 ChildClass
,然后您正在导入整个 object 并尝试调用它。但是对象是不可调用的;你指的不是 ChildClass
class.
就像你用
解构了ParentClass
一样
const { ParentClass } = require('./parent.class');
要么解构ChildClass
:
const { ChildClass } = require('./child.class');
或将ChildClass
分配给module.exports
:
module.exports = ChildClass;
然后您将能够创建 ChildClass
的实例并调用该实例的方法:
const child = new ChildClass(1);
child.showIndex();