Javascript 在js中传递一个类的实例并在没有新实例的情况下访问它们的方法
我只想在不创建新实例的情况下调用这些方法。如果要在类中生成私有数据,请使用WeakMap或闭包Javascript 在js中传递一个类的实例并在没有新实例的情况下访问它们的方法,javascript,es6-class,Javascript,Es6 Class,我只想在不创建新实例的情况下调用这些方法。如果要在类中生成私有数据,请使用WeakMap或闭包这个[name]根本不是私有的,它对任何有权访问实例化对象的人都是完全可见的 另一个问题是使用返回此[名称],getName函数的作用域中没有name变量 此外,在实例化对象本身之前,无法访问对象的类方法 您可能需要这样的内容: const A=(()=>{ const internal=new WeakMap(); 返回A类{ 建造师(姓名){ set(this,{name}); } getName
这个[name]
根本不是私有的,它对任何有权访问实例化对象的人都是完全可见的
另一个问题是使用返回此[名称]
,getName
函数的作用域中没有name
变量
此外,在实例化对象本身之前,无法访问对象的类方法
您可能需要这样的内容:
const A=(()=>{
const internal=new WeakMap();
返回A类{
建造师(姓名){
set(this,{name});
}
getName(){
返回internal.get(this.name);
}
}
})();
B类{
建造师(a){
console.log(a.getName())
}
}
常数a=新的a('bob');
常数b=新的b(a)代码>
class A{
constructor(name){
this[name] = name ; //to be private so i need this
new B(this);
}
getName(){
return this[name];
}
}
class B(){
constructor(a){
a.getName()// I wants to be like this
}
}