从对象内部的函数获取作用域外的变量 - Javascript

Get variable outside scope from a function inside an object - Javascript

我在 Class.

中的一个对象中有一个函数

class 的对象已初始化,我想调用该函数,但该函数需要在 Class 的构造函数中定义一个变量。

class someClass {
  constructor() {
    this.foo = "bar";

    this.print = {
      variable: function() {
        console.log(this.foo);
      }
    };

  }
}

// And I call it from the global scope

var someObject = new someClass();

someObject.print.variable();

它将打印

undefined

我知道是一个不同的范围,也许我无法访问它。

这个objective是为了配合我的功能。

我想像 someObject.print.variable();

那样访问我的函数

也许是这样的?

<script>
class someClass {
  constructor() {
    let that = this;
    this.foo = "bar";

    this.print = {
     variable: function() {
        console.log(that.foo);
       }    
    };

  }
}

//And I call it from the global scope

var someObject = new someClass();

someObject.print.variable();
</script>

使用箭头函数,它将绑定到定义它的对象中的原始 this

class someClass {
  constructor() {
    this.foo = "bar";

    this.print = {
      variable: () => {
        console.log(this.foo);
      }
    };

  }
}

// And I call it from the global scope

var someObject = new someClass();

someObject.print.variable();