获取javascript中同一类中其他方法中的数组

获取javascript中同一类中其他方法中的数组,javascript,arrays,class,oop,2d,Javascript,Arrays,Class,Oop,2d,我一直在这里寻找答案,但我找不到任何答案,但无论如何,我的问题是如何在一个方法中获取一个数组,该方法已在同一个类中的另一个方法中声明和初始化。我将通过展示我想要实现的目标和我迄今为止所做的努力来让事情变得更加清楚 Javascript: class SomeClass { method1() { var array = new array(); //its actually a 2d array and it is being initialised here bu

我一直在这里寻找答案,但我找不到任何答案,但无论如何,我的问题是如何在一个方法中获取一个数组,该方法已在同一个类中的另一个方法中声明和初始化。我将通过展示我想要实现的目标和我迄今为止所做的努力来让事情变得更加清楚

Javascript:

class SomeClass {
   method1() {
      var array = new array();
      //its actually a 2d array and it is being initialised here but for simplicity this isn't 
      //necessary in the example.
   }

   method2() {
   // --> Here i want to access the array and it's contents.

   //I have tried this:
   this.array;
   //and 
   array;
   }
}

但是当我尝试这个数组时,我得到了undefined的cannotready属性

必须将数组声明为类的元素,而不是在方法中,为此,可以使用构造函数

在这里您可以看到更多信息

以下是一个例子:

上课{ 构造函数部分值{ //初始化数组或任何其他atribute this.arr=新的ArraysomeValue; } 方法1{ console.logthis.arr; } 方法2{ console.logthis.arr; } } var实例=新的SomeClass'data'; 实例2.1;
实例1.2 必须将数组声明为类的元素,而不是在方法中,为此,可以使用构造函数

在这里您可以看到更多信息

以下是一个例子:

上课{ 构造函数部分值{ //初始化数组或任何其他atribute this.arr=新的ArraysomeValue; } 方法1{ console.logthis.arr; } 方法2{ console.logthis.arr; } } var实例=新的SomeClass'data'; 实例2.1;
实例1.2 method1中声明的数组仅在该函数中可用。无法在其他函数中访问函数的局部变量

解决方案可以是将数组用作类实例的属性

上课{ 建造师{ this.array=[] } 方法1{ console.logthis.array; } 方法2{ console.logthis.array } } const obj=新类; obj.method1;
方法2 method1中声明的数组仅在该函数中可用。无法在其他函数中访问函数的局部变量

解决方案可以是将数组用作类实例的属性

上课{ 建造师{ this.array=[] } 方法1{ console.logthis.array; } 方法2{ console.logthis.array } } const obj=新类; obj.method1;
方法2 好吧,那么你犯了一个重大错误,你的OOP概念岌岌可危。 要将数组作为类的属性/实例访问,需要在类中声明一个构造函数。有点像这样

  class SomeClass {
     constructor(){
         this.array = new Array();
     }
     yourMethod1(){
        console.log(this.array); /// You cann access it here and manipulate
     }
     yourMethod2(){
        console.log(this.array); // You can accesss here too and do the same
    }
 }
稍后,您可以像这样创建类的实例,并访问这些方法和执行任何操作

  let a = new SomeClass();
  a.yourMethod1();
  a.yourMethod2();

好吧,那么你犯了一个重大错误,你的OOP概念岌岌可危。 要将数组作为类的属性/实例访问,需要在类中声明一个构造函数。有点像这样

  class SomeClass {
     constructor(){
         this.array = new Array();
     }
     yourMethod1(){
        console.log(this.array); /// You cann access it here and manipulate
     }
     yourMethod2(){
        console.log(this.array); // You can accesss here too and do the same
    }
 }
稍后,您可以像这样创建类的实例,并访问这些方法和执行任何操作

  let a = new SomeClass();
  a.yourMethod1();
  a.yourMethod2();

不建议使用没有构造函数的类不建议使用没有构造函数的类