在具有多个对象的类中引用对象和属性

好的,假设我有以下内容:


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对象。为了清楚起见,我只是把完整的路径!


BIG阳
浏览 141回答 1
1回答

长风秋雁

利用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());
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript