javascript - 未捕获的类型错误 : Class constructor Hero cannot be invoked without 'new'

标签 javascript class

回顾这个伟大的tutorial: Understanding Classes in JavaScript作者:Tania Rascia,我在查看如何操作时遇到了此错误 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 Uncaught TypeError: Class constructor Hero cannot be invoked without 'new' at new Mage (:4:8) at :1:15

当使用不带 class 关键字的函数时,此按预期工作。

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

最佳答案

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

var myHeor = new Hero(name, level);

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

关于javascript - 未捕获的类型错误 : Class constructor Hero cannot be invoked without 'new' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57432914/

相关文章:

c# - 拆分一个列表<>,每个项目都包含逗号分隔的字符串并将其格式化

Python - 从类 __init__ 方法调用函数时未定义全局名称

c++ - C++中许多具有相同结构的成员函数

javascript - AJAX:实时功能问题

javascript - 在 JavaScript 中重定向 : IF GET parameter key allow to stay on the page; otherwise redirect to another page

javascript - EmberJS : Injecting owner to native class from component

c++ - 访问冲突写入位置 0x00000000。指针问题

javascript - 如何使嵌入的 YouTube 视频连续重播?

javascript - Google Apps 脚本中的 POST 请求和 405 错误

javascript - iframe 能否保护其内容免受外部 JavaScript 的影响?