JavaScript:如何引用类的顶部/根?

JavaScript:如何引用类的顶部/根?,javascript,class,reference,this,Javascript,Class,Reference,This,所以我有一个问题: class ClassName { constructor(value) { this.value = value; } someObject = { someFunction() { console.log(this.value); } } } someFunction()的this.value没有引用构造函数中定义的值,这是因为someFunction()是someO

所以我有一个问题:

class ClassName {
    constructor(value) {
        this.value = value;
    }
    someObject = {
        someFunction() {
            console.log(this.value);
        }
    }
}
someFunction()
this.value
没有引用构造函数中定义的值,这是因为
someFunction()
someObject
对象的一部分,
this
引用了该对象。 那么,我如何在类的对象/属性中引用类的顶部/根以访问其中的值和属性呢?我也可以处理处于顶层的每个函数,但将它们分组更为清晰。

为了不创建新的作用域,可以使用:

类名{
构造函数(值){this.value=value;}
someObject={
someFunction:()=>{console.log(this.value);}
}
}
const obj=新类名(1);

obj.someObject.someFunction()只需像这样编写函数,以便在声明时绑定
this
。正如您在下面的示例中所看到的,该语法意味着每个对象实例将实例化一次
someObject
,因此您没有利用JavaScript,因为JavaScript在内存消耗方面不太好

类名{
构造函数(值){
这个值=值;
}
someObject={
someFunction:()=>console.log(this.value)
}
}
const obj=新类名('test');
obj.someObject.someFunction();
const obj2=新类名;

console.log(obj2.someObject==obj.someObject);//false
您不需要。这就是为什么不使用对象对方法进行分组。(尽管在你的情况下,它们不是普通的方法,它们是用每一个实例来实例化的。如果你真的想要这个,你可以考虑不要使用<代码>类< /COD>语法),不要使用<代码>类< /Cord>语法,但是请看谢谢!但是箭头函数是唯一的方法吗?