我是一个试图从处理过渡到javascript的javascript新手。
使用Paper.js,我只是试图通过下面的代码来理解类及其函数的等价物,但是仍然存在这样的错误:无法读取属性'移动'未定义。
function Apple (center) {
this.color = 'red';
this.center = center;
this.path = new Path.Circle(this.center, 50);
this.path.fillColor = 'black';
return this.path;
}
Apple.prototype.move = function(){
console.log('allo');
}
var Apples = [];
var nbA = 10;
for(var i=0; i < nbA; i++){
var center = new Point.random() * view.size;
Apples.push(new Apple(center));
}
function onFrame(event){
for(var i=0; i < Apples.length; i++){
Apples[i].prototype.move();
}
}
有人可以解决一些问题吗?谢谢!
答案 0 :(得分:0)
改变这个:
function onFrame(event){
for(var i=0; i < Apples.length; i++){
Apples[i].prototype.move();
}
}
到此:
function onFrame(event){
for(var i=0; i < Apples.length; i++){
Apples[i].move();
}
}
特殊prototype
属性为指定类的所有未来实例(在您的情况下为Apple类)添加属性(在本例中为一个函数的属性)。
此外,结合费利克斯所说的改变了这一点:
function Apple (center) {
this.color = 'red';
this.center = center;
this.path = new Path.Circle(this.center, 50);
this.path.fillColor = 'black';
return this.path;
}
到此:
function Apple (center) {
this.color = 'red';
this.center = center;
this.path = new Path.Circle(this.center, 50);
this.path.fillColor = 'black';
}