javascript - 如何将对象从另一个文件实例化到另一个文件 - javascript

标签 javascript object

我是 JavaScript 新手,遇到了一些问题。

我想在 js5.js 文件中创建 Obstacle 对象的实例,但我不断收到此错误消息:

Uncaught ReferenceError: Obstacle is not defined at window.onload

这就是我所做的,我不应该修改创建 Obstacle 的文件,我必须处理 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;
};

感谢您的帮助:)

最佳答案

我尝试测试您提供的代码。文件和/或代码片段中仅缺少右大括号。请检查下面给出的代码,如果我遗漏了什么,请告诉我。目前无法复制 Uncaught ReferenceError 。

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>

我希望这会有所帮助。

谢谢, 吉格内什·拉瓦尔

关于javascript - 如何将对象从另一个文件实例化到另一个文件 - javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59544609/

相关文章:

javascript - jQuery resize 事件处理程序,在调整大小之前捕获某个元素的原始宽度和高度

java - 在Java中打印对象内部的数组

python - 无法将对象附加到实例变量(列表)

Objective-C 判断参数是否为对象

javascript - 将对象推送到数组中

javascript - 当我尝试使用 ng-init 时,Angular JS : Controller not working. 一切都很完美

javascript - 如何在呈现的表格上切换状态 - React Js

Javascript 获取文件名不起作用

javascript - 使用 jquery 改进每个悬停事件对 div 属性的搜索

firebase - 如何在 flutter 中按日期将数据从 firestore 排序到 map