我是javascript新手,出现了一些问题。
我想在js5.js文件中创建对象Obstacle的实例,但我不断收到此错误消息:
未捕获的ReferenceError:在window.onload上未定义障碍
这是我所做的,我不应该修改创建障碍的文件,我必须处理js5.js文件。
js5.js文件:
window.onload = function(){
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
var posX = 30;
var posY = 375;
var posyInit = 375;
var theta = 0;
var pas = 0;
var ligne = 2;
var droite = true;
var compteur = 0;
var o1 = new Obstacle(0,0,27,27);
var o2 = new Obstacle(184,84,134,67);
var toto = new Array(o1,o2);
obstacle.js:
function Obstacle (p_x,p_y,p_largeur,p_hauteur) {
this.x = p_x;
this.y = p_y;
this.largeur = p_largeur;
this.hauteur = p_hauteur;
Obstacle.prototype.notAllowed = function(a,b){
if (a>=this.x&&a<=this.x+this.largeur&&b>=this.y&&b<=this.y+this.hauteur)
return true;
else
return false;
};
感谢您的帮助:)
我试图测试您提供的代码。在文件和/或代码片段中仅缺少左花括号。请检查下面给出的代码,让我知道是否错过了任何内容。当前无法复制未捕获的参考错误。
window.onload = function(){
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
var posX = 30;
var posY = 375;
var posyInit = 375;
var theta = 0;
var pas = 0;
var ligne = 2;
var droite = true;
var compteur = 0;
var o1 = new Obstacle(0,0,27,27);
var o2 = new Obstacle(184,84,134,67);
var toto = new Array(o1,o2);
}
// obstacle.js:
// ==========================
function Obstacle (p_x,p_y,p_largeur,p_hauteur) {
this.x = p_x;
this.y = p_y;
this.largeur = p_largeur;
this.hauteur = p_hauteur;
}
Obstacle.prototype.notAllowed = function(a,b){
if (a>=this.x&&a<=this.x+this.largeur&&b>=this.y&&b<=this.y+this.hauteur)
return true;
else
return false;
};
<canvas id="canvas"></canvas>
我假设您正在index.html文件中同时导入两个.js文件。
<html>
<head>
<script src="./obstacle.js></script>
<script src="./js5.js></script>
</head>
</html>
我希望这会有所帮助。
谢谢,吉涅什·拉瓦尔
最后从Obstacle.js导出Obstacle函数,export {Obstacle}
。然后将其导入顶部的js5.js中,import {Obstacle} from "./Obstacle"
p.s:导入假定两个文件都在同一文件夹中。否则,请使用适当的相对路径。