Javascript循环变量一开始是正确的,但后来发生了变化
==编辑:下面是一个简单的示例== 当我使用此代码时:Javascript循环变量一开始是正确的,但后来发生了变化,javascript,loops,Javascript,Loops,==编辑:下面是一个简单的示例== 当我使用此代码时: for (var x = 0; x < 50; x+=10) { var obj = new window[type](); obj.bounds.position = new Vector(x, 0); console.log("RECT at " + obj.bounds.position); objects.push(obj); } for (var i = 0; i < objects.l
for (var x = 0; x < 50; x+=10) {
var obj = new window[type]();
obj.bounds.position = new Vector(x, 0);
console.log("RECT at " + obj.bounds.position);
objects.push(obj);
}
for (var i = 0; i < objects.length; i++)
console.log(objects[i].position());
正如Barmar在他的评论中指出的,所有的
Wall
实例都使用相同的bounds
对象
你的小提琴里有
function GameObject() {
this.bounds = new Rectangle();
}
Test.prototype = new GameObject();
Test.prototype.constructor = Test;
function Test() {
this.bounds.width = 50;
this.bounds.height = 50;
}
GameObject
构造函数不会为您的每个Test
实例调用,您必须在Test
构造函数中自己执行此操作
function Test() {
GameObject.call(this);
看看你能在上创建一个可复制的测试用例吗?你问我们为什么
Vector()
函数返回不同的结果,而不发布Vector()
函数?此外,控制台更新对象“live”,而字符串保持不变,这就是为什么你在console@adeneo哎呀,就在那儿
function Test() {
GameObject.call(this);