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

标签 javascript function class scope scoping

我在类中的对象中有一个函数。

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

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

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

这样做的目的是让我的函数有一些顺序。

我想访问我的函数,比如 someObject.print.variable();

最佳答案

使用箭头函数,它将绑定(bind)到定义它的对象中的原始 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();

关于javascript - 从对象内部的函数获取作用域外的变量 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49079277/

相关文章:

javascript - 无论旋转如何获取元素尺寸

javascript - 使用 Nuxt JS/Firebase 的 Vuex 未知操作

c++ - 使字段函数通用

Java:A类中的队列

c++ - C++如何通过父类访问派生类的元素?

javascript - Bootstrap 4 - 当我点击其中的选项卡时下拉消失

javascript - Json 文件在服务器上给出 403 错误

通过 call 和 apply 调用的 Javascript 函数无法处理参数

javascript - 是否可以调用 "parent"函数之外的函数?

c++ - 在 C++ 中的堆或堆栈上创建变量