Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript循环变量一开始是正确的,但后来发生了变化_Javascript_Loops - Fatal编程技术网

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);