开发者问题收集

在 JavaScript 中的静态方法内部实例化对象

2018-11-25
79

我有以下代码。由于某种原因,当我尝试从getallmovies静态方法内实例化电影对象时,我会发现错误。我究竟做错了什么?

642991403
2个回答

Movie 类需要在其构造函数中调用 super() 以获取 this 的正确值:

class Component{}

class Movie extends Component {

  constructor(name, year, genre) {
    super()
    this.name = name
    this.year = year
    this.genre = genre
  }

  static getAllMovies() {
    let movie = new Movie("ss","sss","aaa")
    return movie
  }

}

console.log(Movie.getAllMovies())
Mark
2018-11-25

我认为你对 React 的概念是错误的。 在 React 组件中, propsstate 用于数据管理。 因此语句如下:

class Movie extends component{
     constructor(props){
          super(props);
          this.state = {
               name : this.props.name,
               year : this.props.year,
               genre : this.props.genre,
          }
     }

上述错误是由于你的构造函数而发生的

Julian
2018-11-25