为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

BIG阳 2021-08-26 16:42:06
好的,假设我有以下内容: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());


查看完整回答
反对 回复 2021-08-26
  • 1 回答
  • 0 关注
  • 140 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信