You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Movie类中实现addCast方法以添加单个或多个Actor实例?

实现Movie类的addCast方法方案

当然需要给Movie类添加actors属性啦!这个属性用来存储影片的演员列表,是实现addCast方法的核心基础。下面是具体的实现步骤:

1. 初始化演员列表属性

首先在Movie类的构造函数里添加actors数组,确保每个影片实例都有自己独立的演员列表:

class Movie{ 
  constructor(name, year, duration){ 
    this.name = name; 
    this.year = year; 
    this.duration = duration;
    // 初始化演员数组,专门存储Actor实例
    this.actors = [];
  } 
} 

2. 实现addCast方法

接下来给Movie类添加addCast方法,它需要支持两种传入方式:单个Actor实例,或者Actor实例组成的数组。我们可以通过判断参数类型来分别处理:

class Movie{ 
  constructor(name, year, duration){ 
    this.name = name; 
    this.year = year; 
    this.duration = duration;
    this.actors = [];
  } 

  addCast(cast) {
    // 判断传入的是单个Actor实例还是数组
    if (Array.isArray(cast)) {
      // 如果是数组,批量添加到actors列表中
      this.actors.push(...cast);
    } else {
      // 如果是单个实例,直接添加
      this.actors.push(cast);
    }
  }
} 

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

3. 验证使用效果

现在你就可以按照预期的方式使用了:

// 创建演员实例
const arnold = new Actor("Arnold Schwarzenegger", 76);
const linda = new Actor("Linda Hamilton", 67);
const otherCast = [linda, new Actor("Michael Biehn", 67)];

// 创建影片实例
const terminator = new Movie("The Terminator", 1984, 107);

// 添加单个演员
terminator.addCast(arnold);
// 添加演员数组
terminator.addCast(otherCast);

// 查看结果:会包含所有3个演员实例
console.log(terminator.actors);

如果想让方法更严谨,还可以加入类型校验,确保传入的都是有效的Actor实例:

addCast(cast) {
  // 定义内部方法,验证并添加单个Actor
  const addValidActor = (actor) => {
    if (actor instanceof Actor) {
      this.actors.push(actor);
    } else {
      console.warn(`传入的内容不是有效的Actor实例:${actor}`);
    }
  };

  if (Array.isArray(cast)) {
    cast.forEach(addValidActor);
  } else {
    addValidActor(cast);
  }
}

内容的提问来源于stack exchange,提问作者boludo kid

火山引擎 最新活动