Uncaught TypeError:类构造函数Hero不能在没有“ new”的情况下调用

时间:2019-08-09 15:13:08

标签: javascript class

在回顾Tania Rascia出色的tutorial: Understanding Classes in JavaScript时,我在探讨如何extend a class时遇到了此错误。

class Hero {
  constructor(name, level) {
    this.name = name
    this.level = level
  }

  // Adding a method to the constructor
  greet() {
    return `${this.name} says hello.`
  }
}

// Creating a new constructor from the parent
function Mage(name, level, spell) {
  // Chain constructor with call
  Hero.call(this, name, level)

  this.spell = spell
}
  

VM3527:4未捕获的TypeError:无法调用类构造函数Hero   没有“新”       在新的法师(:4:8)       在:1:15

使用没有关键字class的功能时,此正常工作。

function Hero(name, level) {
  this.name = name;
  this.level = level;
}

1 个答案:

答案 0 :(得分:0)

由于错误消息是对自身的描述,因此,如果不尝试创建新的构造函数实例,就无法调用该构造函数。

var myHeor = new Hero(name, level);

无需创建实例即可调用的唯一方法是static方法