如何在JavaScript中使用构造函数内部的类变量?

如何在JavaScript中使用构造函数内部的类变量?,javascript,Javascript,为什么我不能访问构造函数中的变量 class目录{ refs={}; 构造函数(方向、标签、反向、顺时针){ this.dir=dir; //错误:未定义引用 Dir.prototype.refs[label]={ref:this,reverse,顺时针}; //这也行不通 Dir.refs[label]={ref:this,reverse,顺时针}; } } //试验 const dirU=new Dir([0,-1],'U','D','R'); refs可在施工人员之外访问: class目

为什么我不能访问构造函数中的变量

class目录{
refs={};
构造函数(方向、标签、反向、顺时针){
this.dir=dir;
//错误:未定义引用
Dir.prototype.refs[label]={ref:this,reverse,顺时针};
//这也行不通
Dir.refs[label]={ref:this,reverse,顺时针};
}
}
//试验
const dirU=new Dir([0,-1],'U','D','R');
refs
可在施工人员之外访问:

class目录{
refs={};
构造函数(方向、标签、反向、顺时针){
this.dir=dir;
}
}
const dirU=new Dir([0,-1],'U','D','R');
控制台日志(目录参考);
//将打印“{}”
这将解决问题,但不那么方便:

class目录{
构造函数(方向、标签、反向、顺时针){
this.dir=dir;
if(!(Dir.prototype中的标签))Dir.prototype.refs={};
Dir.prototype.refs[label]={ref:this,reverse,顺时针};
}
}
如何访问构造函数中的类变量?这在javascript中可能吗

澄清:我希望
refs
用标签字典记住所有以前的实例。
我想让Dir类保存一本他所有实例的字典。在python中,这是您编写它的方式,但在javascript中它不起作用。

Make
refs
static。然后使用
Dir.refs
。即:

class目录{
静态引用={};
构造函数(方向、标签、反向、顺时针){
this.dir=dir;
Dir.refs[label]={ref:this,reverse,顺时针};
}
}

Make
refs
static。然后使用
Dir.refs
。即:

class目录{
静态引用={};
构造函数(方向、标签、反向、顺时针){
this.dir=dir;
Dir.refs[label]={ref:this,reverse,顺时针};
}
}

Dir.prototype.refs[label]
->
此.refs[label]
。如果您想与实例进行交互,只需
这个
。您没有与原型交互,也没有与类进行静态交互。否,我希望
refs
使用标签字典
Dir.prototype.refs[label]
->
this.refs[label]
。如果您想与实例进行交互,只需
这个
。您没有与原型交互,也没有与类静态交互。不,我希望
refs
使用标签字典记住以前的所有实例太棒了!谢谢将在3分钟内接受。@Elavlouski。。。你在你的问题中提出的不向公众公开这些参考资料的担忧是什么。。。“…
refs
可在构造函数外部访问…”。上述方法并不能阻止它。唯一能够完全满足这一要求的方法是使用额外的封装。@PeterSeliger实际上,我希望它能够公开访问太棒了!谢谢将在3分钟内接受。@Elavlouski。。。你在你的问题中提出的不向公众公开这些参考资料的担忧是什么。。。“…
refs
可在构造函数外部访问…”。上述方法并不能阻止它。唯一能够完全满足这一要求的方法是使用额外的封装。@PeterSeliger实际上,我希望它可以公开访问