【问题标题】:How can I access a variable declared in the constructor from a method?如何从方法访问构造函数中声明的变量?
【发布时间】:2020-03-22 05:08:46
【问题描述】:
class X {
   constructor (e) {
        let someVar = e; 
   }
   SomeMethod () {
        console.log(this.someVar);   
   }
}

它给了我未定义的,那么我怎样才能得到“someVar”的值?;

【问题讨论】:

标签: javascript class


【解决方案1】:

在构造函数中,使用this 代替let

constructor (e) {
    this.someVar = e; 
}

我强烈建议您详细了解 javascript 中的变量作用域。可以咨询this post

另外,如果您想了解更多关于 javascript 中的 class 的信息,请咨询 this nice post

遵循一个完整的工作示例:

class X {
   constructor (e) {
        this.someVar = e; 
   }
   SomeMethod () {
        console.log(this.someVar);   
   }
}

const obj = new X("Some text");
obj.SomeMethod();

【讨论】:

    【解决方案2】:

    class X {
       constructor (e) {
            this.someVar = e; 
       }
       SomeMethod () {
            console.log(this.someVar);   
       }
    }

    【讨论】:

      【解决方案3】:

      在 JavaScript 中,可以在 constructor 函数中使用 this 关键字声明对象字段。因此,您的someVar 只是构造函数范围内 的局部变量。

      你需要这样做:

      class X {
         constructor (e) {
              this.someVar = e; //Now, someVar is a proper field of any object instance of X
         }
         SomeMethod () {
              console.log(this.someVar);   
         }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-02-20
        • 1970-01-01
        • 1970-01-01
        • 2013-05-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多