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>语法,但是请看谢谢!但是箭头函数是唯一的方法吗?