以下是我的代码,
function hostile(x, y) {
this.speed = 1;
this.health = 100;
this.x = x;
this.y = y;
this.height = 32;
this.width = 32;
this.isDead = false;
this.direction = 0;
this.move = function(){
context.clearRect(0,0,canvas1.width,canvas1.height);
if (this.x > canvas.width - 64) {
this.y += 10;
this.direction = 0;
}
if (this.x < 0) {
this.y += 10;
}
if (this.direction === 1) {
this.x += this.speed;
} else {
this.x -= this.speed;
}
if (this.x < 0) {
this.direction = 1;
}
if (this.y > 420) {
//this might have to be changed
this.x = 600;
}
}
};
//CREATING AN INSTANCE OF HOSTILE, THIS ISN'T WORKING FOR MULTIPLE INSTANCES, BUT WHY?
var hostile = new hostile(20,20);
var hostileA = new hostile(20,20);
我创建了
hostile
,并在update方法中调用了此实例,但hostile.move()
但是var hostile
起作用,var hostile
无效,我检查了代码hostile
是其中的唯一引用文件。 最佳答案
var hostile = new hostile(20,20);
您只是重写了
hostile
变量以引用该实例而不是构造函数。这是构造函数按惯例是UpperCamelCase的原因之一
关于javascript - 无法在JavaScript中创建新实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19542854/