Javascript 从原型调用对象值的正确方法?

Javascript 从原型调用对象值的正确方法?,javascript,html5-canvas,Javascript,Html5 Canvas,所以我得到了一个创建了几百次的对象,我使用原型来更新它们,每个都有自己不同的值。但是,我认为我调用的对象不正确,因为它无法访问对象的任何值 var asteroids = []; //Create some objects for (i=0; i<100; i++) { asteroids[i] = new Asteroid(); } function Asteroid() { this.x = Math.random(); this.y = Math.rand

所以我得到了一个创建了几百次的对象,我使用原型来更新它们,每个都有自己不同的值。但是,我认为我调用的对象不正确,因为它无法访问对象的任何值

var asteroids = [];

//Create some objects
for (i=0; i<100; i++) {
    asteroids[i] = new Asteroid();
}

function Asteroid() {
    this.x = Math.random();
    this.y = Math.random();
};

//Used to update each object
Asteroid.prototype.update = function() {
    this.x += Math.random();
    this.y += Math.random();
};

//Updates all the objects by calling the prototype each second
setInterval(function() {
    Asteroid.prototype.update();
},1000);
var小行星=[];
//创建一些对象

对于(i=0;i调用附加到原型的函数不会将其应用于所有实例。它只是一个函数。您需要迭代数组并对每个对象调用update()。

您需要对
Asteroid
的实例执行
update()
操作:

// Updates all the objects by calling the prototype each second
setInterval(function() {
    asteroids.forEach(function(a) { a.update(); });
}, 1000);
调用
Asteroid.prototype.update()
不会在
Asteroid
的所有实例上调用
update
方法


进一步阅读


谢谢你的帮助!我想用就用。