大佬教程收集整理的这篇文章主要介绍了如何从外部函数访问我的类中的构造函数成员?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
所以,我还是 Js 的新手。但我尝试解决我的第一个更大的项目。但是,我无法弄清楚为什么我无法从主类之外的函数访问构造函数成员。我认为它与 module.exports / require 有关。所以,我就是这样做的。仍然没有运气。
这是我在 @H_561_5@main.Js 文件中的代码:
const funcs = require('./funcs.Js');
class MainClass {
constructor(omegga,config,storE) {
this.omegga = omegga;
this.config = config;
this.store = store;
}
async init() {
TestVehicle.on('cmd:test',async name => {
const dss = await this.store.get('cats'); // this works fine.
funcs.setSomething('29'); // this errors
console.log(dss);
});
}
}
module.exports = MainClass;
async stop() { }
但是我的函数 funcs.setSomething('29') 出错了。这是 funcs.Js 中的函数:
var MainClass = require('./main.Js');
const teampo = new MainClass();
async function setSomething(argument1) {
try {
teampo.store.set('cats',argument1); // this errors
} catch(E) { console.error(E); }
}
module.exports = { setSomething };
现在,Js 告诉我有些东西似乎未定义。这是我收到的错误消息:
"TypeError: 无法读取未定义的属性 'set'"
我想知道为什么它是未定义的?我不应该能够继承 store 及其所有属性/方法吗?我已经尝试了所有方法,例如更改要求、module.exports 等。但它似乎不起作用。可能原因更严重,还是这是我犯的一个简单的错误并且一直在监督?
当您使用 const teampo = new MainClass();
实例化您的类时,您不会传递任何参数。构造函数将 store 设置为参数之一 (this.store = store
)。由于没有 store 参数,因此 this.store 是未定义的。
因此,如果您随后尝试对其调用 set
,则会出错。
当您在此处创建类的实例时:const teampo = new MainClass();
,您没有向它传递它需要的 3 件事
constructor(omegga,config,storE) {}
。
因为你没有给它传递一个 store
,this.store
,因此 teampo.store
是 undefined
以上是大佬教程为你收集整理的如何从外部函数访问我的类中的构造函数成员?全部内容,希望文章能够帮你解决如何从外部函数访问我的类中的构造函数成员?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。