好的,假设我有以下内容:class Something { foo = { a: '123', get_a() { return this.a; } }; bar = { b: '456', get_b() { return this.b; }, get_c() { return this.get_a(); } };}window.s = new Something();window.s.bar.get_c();如果我要使用s.bar.get_b()它会返回'456'。在get_b()I can reference 中this.b,它看起来是对bar. 但是,当我尝试调用 时s.bar.get_c(),出现错误:未捕获的类型错误:this.get_a 不是函数好吧,根据我对this引用 的理解bar,我想这是有道理的。不过,我不明白我需要做的实际参考foo.get_a()的bar.get_c()。我尝试了各种方法,但似乎没有任何效果,除了使用,s.foo.get_a()但我不想直接引用s对象。我在这里缺少什么?我开始怀疑我从根本上构建了我的班级错误......编辑:不知道为什么有人觉得需要更新我的帖子以让它执行代码片段..似乎有点矫枉过正¯_(ツ)_/¯无论如何......我应该提到一件事:实际上我实际上并不是s.foo.get_a()从我的类函数之外的其他一些上下文中调用,这就是为什么我提到不想直接引用该s对象。为了清楚起见,我只是把完整的路径!
1 回答
长风秋雁
TA贡献1757条经验 获得超7个赞
利用arrow functions:
class Something {
foo = {
a: '123',
get_a() {
return this.a;
}
};
bar = {
b: '456',
get_b() {
return this.b;
},
get_c: () => {
return this.foo.get_a();
}
};
}
const a = new Something();
console.log(a.bar.get_c());
添加回答
举报
0/150
提交
取消