Добавление одного или нескольких экземпляров класса в другой класс - PullRequest
0 голосов
/ 19 мая 2018

У меня есть Movie и Actor классы.Мне нужно добавить addCast(cast) метод, который позволяет добавить один или несколько Actors к фильму.

У меня уже есть:

class Movie{
    constructor(name, year, duration){
        this.name = name;
        this.year = year;
        this.duration = duration;
    }
}
class Actor{
    constructor(name, age){
        this.name = name;
        this.age = age;
    }
}

Я должен быть в состояниисделать что-то вроде:

terminator.addCast (arnold);

terminator.addCast (otherCast);// otherCast может быть массивом Actor

Как мне это сделать?

Нужно ли мне добавить атрибут actorsMovie)добавить актеров, используя addCast(cast)?Если да, то как мне это сделать?

1 Ответ

0 голосов
/ 19 мая 2018

Может сработать что-то вроде следующего (адаптироваться к вашим потребностям):

class Movie{
    constructor(name, year, duration){
        this.name = name;
        this.year = year;
        this.duration = duration;
        this.cast = []; // initialy we have an empty cast, to be added by addCast
    },
    addCast(cast){
       // in general it can accept an array of actors or a single actor
       if ( cast instanceof Actor) {
           cast = [cast]; // make it an array
       }
       for(var i=0; i<cast.length; i++) {
          this.cast.push(cast[i]);
       }
       return this; // make it chainable
    }
}

Затем вы можете добавить актеры к своим фильмам, например:

terminator.addCast(new Actor('Arnold', 47)); // add single actor as cast
terminator.addCast([
  new Actor('An Actor', 30),
  new Actor('Another Actor', 40),
]); // add array of actors
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...