javascript - tipos - uncaught referenceerror is not defined solucion
"Error de referencia no capturado: esto no está definido" en el constructor de la clase (1)
Este es un hecho de la nueva sintaxis de clase.
Su subclase necesita llamar a
super()
para que la clase se inicialice correctamente, por ejemplo
super(arg1, arg2, argN);
con cualquier argumento que necesite el constructor padre.
Se requiere que, si la ejecución alcanza el final de una función de
constructor
, el valor de
this
debe haberse inicializado en algo.
Debe estar en una clase base (donde se inicializa automáticamente), haber llamado
super()
para que se inicialice o
return
un objeto alternativo.
class Player extends Entity {
constructor() {
super();
console.log("Created"); ;// error here
}
}
Puedes pensar que
constructor
funciones de
constructor
tienen un
return this
automático al final de ellas.
Estoy jugando con las cosas nuevas en JavaScript / ES6.
Obtengo un
Uncaught ReferenceError: this is not defined(...) player.js:5
en mi código.
Por lo que veo, ¡no hay errores aquí!
¿Es esto un error?
¿Alguna solución?
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>
entity.js
"use strict";
class Entity {
constructor() {
console.log("Entity");
}
}
player.js
"use strict";
class Player extends Entity {
constructor() {
console.log("Created"); // <- error here
}
}