javascript конструктор класса инициализирует массив - PullRequest
1 голос
/ 23 января 2020

, поэтому мне интересно, как инициализировать массив в конструкторе класса:

class test{

    constructor(){
        //here i want to initialize a new array called "array" from the class "class2"
        let array = [new class2()]; //is this the way to do it?
    }

    add(x){
        for(let i=0; i<array.length; i++){
            if(array[i] == null){
                array[i] = x;
                break;
            }
        }
    }
}

Я хочу сделать, чтобы дать этому массиву некоторые значения другого класса, как у class2 есть другой конструктор с некоторыми значениями (скажем, имя и возраст)

1 Ответ

1 голос
/ 23 января 2020

Переменная, которую вы инициализируете, будет привязана к контексту конструктора. Это означает, что вы можете использовать их снова в конструкторе, но он не будет доступен вне этой функции.

Поскольку вы используете классы ES6, вы можете добавить переменную класса, которая будет содержать этот массив. Вам нужно будет получить к нему доступ, используя this, но он будет работать нормально.

class test{


    constructor(){
        // this variable will be accessible from everywhere in the class
        this.array = [new class2()]; 
    }

    add(x){
        for(let i = 0; i < this.array.length; i++){
            if(this.array[i] == null){
                this.array[i] = x;
                break;
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...