类构造函数中的“未捕获的ReferenceError:未定义”
我正在使用JavaScript / ES6中的新功能。我的Uncaught ReferenceError: this is not
defined(...) player.js:5代码中有一个。据我所知,这里没有错误!这是一个错误吗?任何解决方法?
index.html
<html> <head>
<script type="text/javascript" src="js/entity.js"></script>
<script type="text/javascript" src="js/player.js"></script>
<link href="css/style.css" rel="stylesheet" type="text/css">
<title>Test</title>
</head>
<body>
<canvas id="screen" width=500 height=500></canvas>
<script type="text/javascript">initialize();</script>
</body>
</html>
实体.js
"use strict";class Entity {
constructor() {
console.log("Entity");
}
}
player.js
"use strict";class Player extends Entity {
constructor() {
console.log("Created"); // <- error here
}
}
回答:
这是新类语法的事实。您的子类需要调用super()
才能正确初始化该类,例如
super(arg1, arg2, argN);
带有父构造函数所需的任何参数。
要求,如果执行到达constructor
函数的末尾,则this
需要将值初始化为某种值。您可能需要在一个基类(这里this
是自动初始化的),都称为super()
所以this
被初始化时,或return
编替代对象。
class Player extends Entity { constructor() {
super();
console.log("Created"); ;// error here
}
}
您可以将其想像为在其末尾constructor
具有自动功能的函数return this
。
以上是 类构造函数中的“未捕获的ReferenceError:未定义” 的全部内容, 来源链接: utcz.com/qa/413865.html