好吧,我有以下内容:
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()
中,我可以引用this.b
,它似乎是对bar
的引用。但是,当我尝试致电s.bar.get_c()
时,出现错误消息:
未捕获的TypeError:this.get_a不是函数
基于我对this
是对bar
的引用的理解,我认为这很有意义。但是,我不知道从foo.get_a()
实际引用bar.get_c()
所需要做的工作。我已经尝试了各种方法,但是似乎没有任何效果,除了仅使用s.foo.get_a()
之外,但我不想直接引用s
对象。我在这里想念什么?我开始怀疑我从根本上讲错了我的课堂结构……
编辑:不知道为什么有人觉得需要更新我的帖子才能执行代码片段。.似乎过分了__(ツ)_ /
无论如何..我应该提到的一件事:实际上,我实际上并不是从类函数之外的其他上下文中调用s.foo.get_a()
,这就是为什么我提到不想直接引用{{1 }}对象。为了清楚起见,我只是走了一条完整的路!
答案 0 :(得分:2)
使用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());